是什么导致 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? 的相关文章

随机推荐

  • 将 []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