我在 MVC4 / IIS / Forms 身份验证方面遇到了一个奇怪的间歇性问题。
我有一对使用 SSO 将控制权相互传递的网站。大多数情况下,切换正确发生,用户按预期重定向到下一个站点。但是,在某些情况下,即使发送了有效的 SSO 信息,也会要求用户再次登录。该SSO
方法用[AllowAnonymous]
属性修饰, web.config也有一个 location 条目,授予所有用户访问/account/sso的权限。
它似乎发生在第一次访问目标站点时 - 一旦应用程序池预热,问题就会消失。
其他几点:
1 两个站点都是 .net 4,因此不应存在任何遗留加密问题。
2. 这个问题很少发生(<10% 的时间),所以代码本身应该是健全的
3. 本地主机是 IIS 7.5 on win7x64,天蓝色 - 发生在两个地方
4. 似乎与浏览器无关
<location path="account/sso">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
[Authorize]
public class AccountController : BaseControllerTestable
{
public AccountController()
: base()
{
}
[AllowAnonymous]
public ActionResult SSO(string AuthToken, string Target)
{
//SSO logic here
}
}
有任何想法吗?