我使用Asp.Net 2FA并部署在Azure上。我按照Identity 2.1项目的样本工作。 当我登录时,我可以选择记住浏览器,系统会发送一个名为.AspNet.TwoFactorCookie的cookie。在后续登录时,我不需要输入2FA代码。一切都好。
但是在新部署中,我部署到Azure上的暂存区域,然后执行交换,交换生产和暂存环境。如果我然后尝试登录,.AspNet.TwoFactorCookie不再有效,我需要获得一个新的2FA代码。
但是,如果我再次交换,即生产恢复到原来状态,.AspNet.TwoFactorCookie再次工作。
在解密cookie时,生产和登台环境返回的值似乎不同。但是我该如何解决这个问题呢?为了最大限度地缩短生产环境的停机时间,Azure交换是可行的方法,但它会破坏2FA身份验证。
答案 0 :(得分:0)
正如@ojf和@trailmax所说,我只需要web.config中的machineKey
对于其他任何人,here's a site to generate a machineKey,您只需将其添加到该部分下的web.config中即可。 (谢谢你们)