使用负载平衡服务器丢失WIF声明

时间:2014-11-28 21:15:23

标签: asp.net-mvc-4 load-balancing wif ws-federation

我有一个使用WIF身份验证的MVC4 C#项目。我在具有负载平衡的服务器上遇到问题。 当负载均衡器后面的服务器发生变化时,我收到一个错误,正在访问其中一个声明。

这很奇怪,因为我没有失去我经过身份验证的事实。这表明我的cookie已进入新服务器,但由于某种原因缺少声明。

我正在添加这样的声明:

((ClaimsIdentity)HttpContext.User.Identity).AddClaim(new Claim("TheClaimName", "TheClaimValue"));

我认为声明本身可能不会持久存在于Cookie中。我如何“保存”这个?

这是我的配置文件。

<system.identityModel>
    <identityConfiguration>
        <audienceUris>
            <add value="uri:someValue" />
        </audienceUris>
        <certificateValidation certificateValidationMode="None" />
        <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <trustedIssuers>
                <add thumbprint="AAAA3A088B9D2010333890138D64C2E66169DEEE" />
            </trustedIssuers>
        </issuerNameRegistry>
            <securityTokenHandlers>
            <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </securityTokenHandlers>
    </identityConfiguration>
    </system.identityModel>
  <system.identityModel.services>
    <federationConfiguration >
        <cookieHandler requireSsl="true" name=".myCookieName" hideFromScript="true" path="/" domain="myDomain.com"/>
        <wsFederation passiveRedirectEnabled="true" issuer="https://login.server.com/issue/wsfed" realm="uri:someValue" requireHttps="true" />
    </federationConfiguration>
  </system.identityModel.services>

0 个答案:

没有答案