我有一个MVC4/IIS/Forms身份验证奇怪的间歇性问题。MVC4/IIS/Forms身份验证SSO问题
我有一对使用SSO将控制权交给彼此的网站。大部分时间切换正确发生,并且用户按照预期被重定向到下一个站点。但是,在某些情况下,即使发送了有效的SSO信息,也会要求用户重新登录。 SSO
方法装饰有[AllowAnonymous]
属性,并且web.config也具有允许所有用户访问/account/sso的位置条目。
当目标网站第一次被击中时,似乎会发生这种情况 - 一旦应用程序池被预热,问题就会消失。
的其他一些观点:
1这两个网站是.NET 4,所以不应该有任何遗留加密问题。
2.本期发生相当罕见(< 10%的时间),所以代码本身应该健全
3.托管是在win7x64 IIS 7.5在当地,和天蓝色 - 发生在这两个地方
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
}
}
任何想法?
新会话启动时是否显示登录屏幕? 这两个Web应用程序的会话超时设置如何? 他们有不同的应用程序池吗?这些泳池是否有回收设置? 确实可以终止站点的性能计数器并记录站点的相关性能计数器,如会话超时,重新编译? – Siraf 2013-04-11 20:07:28
听起来像绝对不是代码问题。如果您使用Cookie或应用程序池回收,我的猜测可能是Cookie超时。在认证逻辑中添加一些跟踪,发生问题时是否执行SSO方法? – Sergey 2013-04-16 01:26:47