ASP.NET WIF更改安全令牌处理程序并避免CryptographicException



我们有一个使用WIF和经典SessionSecurityTokenHandler的ASP.NET MVC应用程序,这意味着WIF cookie是使用DPAPI签名的。

我们希望将安全令牌处理程序切换到MachineKeySessionSecurityTokenHandler,因为我们希望将应用程序扩展到Azure web应用程序部署中的多个实例(web场)。这意味着WIF cookie将使用机器密钥(在web应用程序实例之间共享)进行签名。

我们面临的问题是用户已经为应用程序初始化了cookie。如果我们粗暴地更改令牌处理程序,这些用户将得到一个丑陋的HTTP500页面,这是由于cookie签名无效而导致的CryptographicException

有没有办法防止错误,而是丢弃过时的cookie,或者让用户再次进行身份验证?

好的,所以我们最终找到了解决这个问题的方法。我们只是更改了cookie的名称,这导致用户断开连接,并生成了一个新的cookie。这是web.config的相关部分:

<configuration>
    <system.identityModel.services>
        <federationConfiguration>
            <cookieHandler name="CookieName" />
        </federationConfiguration>
    </system.identityModel.services>
</configuration>

相关内容

  • 没有找到相关文章

最新更新