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

时间:2016-04-06 14:38:04

标签: c# asp.net asp.net-mvc wif

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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