我正在使用 MVC4 c# 并合并了一个本地安全令牌服务 (STS)。用户调用实际的网址,他们被被动地重定向到 STS 登录。当他们成功进行身份验证时,他们会被重定向到他们应该去的地方,这些都在重定向到 sts 的 URL 中进行了 urlencoded。
注销后,我们调用:
this.Session.Abandon();
this.Response.Cache.SetCacheability(HttpCacheability.NoCache);
this.Response.ClearContent();
// expires the claims
FederatedAuthentication.SessionAuthenticationModule.SignOut();
FederatedAuthentication.SessionAuthenticationModule.CookieHandler.Delete();
WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule
Response.Redirect(WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null));
在我们的应用程序的桌面版本上,一切似乎都运行良好。用户返回 STS 登录页面,URL 显示 wlogin1(以及许多其他内容),并允许用户再次登录而不会出现问题。该 url 与它们第一次被重定向到 STS 时完全相同。完美,这就是我想要的。
现在,当在移动设备上使用完全相同的域/控制器/方法时,它只使用 jQueryMobile 和不同的局部视图,注销似乎工作并且用户被带回 STS 登录。然而,这一次,URL 只显示了从用于注销的移动 actionLink 实际调用的域/控制器/方法。当用户再次尝试登录时,登录总是不成功,因为此链接不适用于 sts 登录。
关于如何解决这个问题的想法,或者有什么问题?如果您需要任何澄清,请告诉我。谢谢!