是什么导致 FederatedAuthentication.SessionAuthenticationModule 返回 NULL?

2023-11-24

我不知道为什么,但当我尝试运行 ClaimsTransformer() 模块时,我的 FederatedAuthentication.SessionAuthenticationModule 解析为 NULL 并使我的应用程序崩溃:

    public void EstablishSession(ClaimsPrincipal principal)
    {
        var sessionToken = new SessionSecurityToken(principal, TimeSpan.FromHours(8))
        {
            IsPersistent = false, // make persistent
            IsReferenceMode = true // cache on server
        };


        FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);
       // FederatedAuthentication.SessionAuthenticationModule == null and I throw an error :(
    }

这是我的 web.config 中的内容:

<configSections>
  <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
  <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</configSections>
<system.web>
  <authentication mode="None" />
</system.web>
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="RoleManager" />
    <remove name="FormsAuthentication" />
    <remove name="SessionAuthenticationModule" />
    <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </modules>
</system.webServer>
<system.identityModel>
  <identityConfiguration>
    <claimsAuthenticationManager type="Web.Infrastructure.Authentication.ClaimsTransformer, Web" />
  </identityConfiguration>
</system.identityModel>
<system.identityModel.services>
  <federationConfiguration>
    <cookieHandler requireSsl="false" />
  </federationConfiguration>
</system.identityModel.services>

这让我发疯,因为我在一个(概念验证)项目中运行代码没有任何问题,而且似乎是让这个功能正常工作所需的一切,但由于一些奇怪的原因,当我尝试在我们的真实项目中实现时,我的 FederatedAuthentication.SessionAuthenticationModule 始终为 NULL。

我在这里缺少什么?有任何想法吗?为什么 SessionAuthenticationModule 未正确初始化?


我对已经运行的项目和 FederatedAuthentication.WSFederationAuthenticationModule 的行为几乎相同。

问题解决了我从 IIS Express 切换到完整 IIS(项目文件合并错误)。

您也可以尝试将此模块不仅添加到一个部分,而且:

<system.web>
<httpModules>
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

你可以参考这个MSDN 文章样品。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么导致 FederatedAuthentication.SessionAuthenticationModule 返回 NULL? 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 按成员序列化

    我已经实现了template
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • 将 []byte 转换为小/大端有符号整数或浮点数?

    我能够转换 byte转换为无符号整数 a binary LittleEndian Uint16 sampleA b binary BigEndian Uint32 sampleB 这利用了 Go 包中的 Big Endian 和 Littl
  • 我应该关闭JNDI获取的数据源吗?

    更新 显然 Tomcat 从 7 0 11 开始 为您关闭了数据源 因此它在 web 应用程序的 contextDestroyed 中不可用 看 https issues apache org bugzilla show bug cgi i
  • objdump - head ELF - 标志的含义?

    objdump f a out a out file format elf32 i386 architecture i386 flags 0x00000112 EXEC P HAS SYMS D PAGED start address 0x
  • C# 中的流重用

    我一直在尝试一个我认为很简单的想法 我希望能够从某个地方 网站 文件系统 ftp 读取文件 对其执行一些操作 压缩 加密等 然后将其保存在某个地方 可能是文件系统 ftp 或其他任何地方 这是基本的管道设计 我想做的就是读入文件并将其放入
  • 仅通过存储过程强制 INSERT

    使用 SQL Server 2008 是否有一种方法允许仅通过存储过程插入表 如果可以 如何实现 EDIT 最好的方法可能是马丁 史密斯的建议 即使用代替插入扳机 这个问题的直接答案是 marc s 的 GRANT 和 DENY 答案 尽管
  • java中删除和重命名文件

    我在java中创建了一个文件 file1 我读取了该 file1 并对从 file1 读取的数据进行了一些更改 然后将新数据写入另一个文件 file2 现在我需要的是删除以前的文件 file1 并将文件 file2 的名称更改为 file1
  • 创建动态 html 表单

    我想创建一个动态变化的表单 我有一个用于创建项目的表单 包含以下字段 project name project description 并且该项目可以具有任意数量 大于或等于 0 的类别 我想要的是显示一个按钮 让用户可以选择添加另一个类别
  • 删除 Lucene.net 中的所有索引

    我想删除all之前创建的索引 我在用Lucene net 我尝试了以下方法 Term term new Term empty because I want to delete all the indices IndexReader rdr
  • 仅当字符为 Firebird 2.5 上的数字时才转换为 Int

    我有一个在 MySQL 数据库上使用的查询 该查询对结果进行排序 在可能的情况下 当 char 字符串是数字时 将 char 数据库字段转换为整数 因此例如ORDER BY我在 MySQL 上使用的子句是 ORDER BY CASE WHE
  • 如何在刷新页面时抑制重新发布 - ASP.NET MVC

    我正在使用 asp net mvc 构建一个向导 目前 当用户点击下一个 或上一个 时 表单值将被发布到一个操作 该操作执行所需的任何处理 然后呈现下一个视图 我遇到的问题是 如果用户在新视图中点击刷新 他们会被提示重新发布表单值 这会导致
  • 兼容 x86 的英特尔至强融核加速器中是否有 SIMD(SSE / AVX) 指令?

    x86 兼容加速器 MIC Intel Xeon Phi 中是否有 SIMD SSE AVX 指令 http en wikipedia org wiki Xeon Phi 是的 最新一代的英特尔至强融核协处理器 代号 骑士角 缩写 KNC
  • 如何使用伪 CGO 指令在子目录中添加 C 文件作为 go build 的一部分?

    根据文档 go buildwith cgo 将在包的根目录中添加任何 C C 文件作为编译的一部分 有没有办法使用 CGO 指令使给定子目录中的 C C 文件以及根目录中的文件也成为编译的一部分 并不真地 您唯一的选择是将子目录设为另一个
  • Flask 路由模式匹配顺序

    鉴于Flask 路由不是从上到下进行模式匹配的 如何处理以下问题 我有以下路线
  • 如何对并行 numpy 数组进行“压缩排序”?

    如果我有两个并行列表并想按第一个列表中元素的顺序对它们进行排序 这非常简单 gt gt gt a 2 3 1 gt gt gt b 4 6 7 gt gt gt a b zip sorted zip a b gt gt gt print a
  • 从 jQuery 调用 WCF 服务库时出现问题

    我通过我的 ASPX 站点公开了一个 WCF 服务库 如下所示 System ServiceModel OperationContract System ServiceModel Web WebInvoke Method POST Requ
  • Java 嵌套泛型类型

    为什么必须使用泛型类型Map gt m Doesn t compile public static void test Map gt m 请注意以下方法
  • 如何在执行tensorflow .fit时修复死内核

    内核是dead执行时model fit train generator epochs 20 但相同的代码可以在另一台电脑上运行 这是一个 Juputer 日志 警告 17 03 05 等待单元格完成时出错 错误 在回复完成之前取消了执行请求
  • PyCharm 运行工具窗口(运行选项卡窗口)丢失

    所以最近我的 PyCharm 缺少通常显示运行 调试结果的运行工具窗口 它现在被 python 控制台和服务取代 这确实令人沮丧 因为它只是显示乱码和类似命令提示符的格式 如何将运行工具窗口返回为主运行 调试窗口 我用红色圆圈圈出了这张图片
  • 如何制作静态链接ELF文件来加载LD_PRELOAD .so

    我有静态链接的二进制文件 ELF 文件 它没有动态段 dymsym 部分 并且不执行 LD PRELOAD 命令等 我如何创建假虚拟动态段来激活动态加载程序并执行 LD PRELOAD 命令 我如何创建假虚拟动态段来激活动态加载程序并执行
  • 是什么导致 FederatedAuthentication.SessionAuthenticationModule 返回 NULL?

    我不知道为什么 但当我尝试运行 ClaimsTransformer 模块时 我的 FederatedAuthentication SessionAuthenticationModule 解析为 NULL 并使我的应用程序崩溃 public