gpt4 book ai didi

c# - WIF 的 SessionAuthenticationModule 始终为空。为什么?

转载 作者:行者123 更新时间:2023-11-30 22:13:10 26 4
gpt4 key购买 nike

我的项目有以下内容:

ClaimsIdentity identity = new ClaimsIdentity(claims, "Forms");
ClaimsPrincipal principal = new ClaimsPrincipal(identity);
principal = FederatedAuthentication.FederationConfiguration.IdentityConfiguration.ClaimsAuthenticationManager.Authenticate(String.Empty, principal);

SessionAuthenticationModule module = FederatedAuthentication.SessionAuthenticationModule;

SessionSecurityToken token = new SessionSecurityToken(principal, new TimeSpan(24, 0, 0));
token.IsPersistent = FederatedAuthentication.FederationConfiguration.WsFederationConfiguration.PersistentCookiesOnPassiveRedirects;
token.IsReferenceMode = module.IsReferenceMode;

module.WriteSessionTokenToCookie(token);

我使用的配置是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<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="Forms" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
</modules>
</system.webServer>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" name="federation" />
</federationConfiguration>
</system.identityModel.services>

我目前的问题是:

  1. 我需要 token.IsPersistent 吗?因为它正在使用 ...WsFederationConfiguration?我不确定我是否应该保留这个或我应该从哪里获取值(value)。

  2. 为什么我的模块在使用 Visual Studio Development Server 时为空,而在使用本地 IIS Web 服务器时不为空?我想在这两方面都做得很好。

  3. 我应该使用还是

  4. 我是否需要关闭角色、成员资格……提供商?因为我没有使用它们……如果是,为什么?

最佳答案

我一直遇到这个问题,只是通过将以下内容添加到我的 web.config 来解决它。如果其他人遇到同样的问题,值得一试。

  <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthenticationModule" />
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></add>
</modules>
</system.webServer>

关于c# - WIF 的 SessionAuthenticationModule 始终为空。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19325567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com