我在.net 4.5中创建了一个MVC 4应用程序并安装了Identity and Access工具,以便我可以创建一个声明感知应用程序。我配置了应用程序,以便它使用2012年附带的新LocalSTS,因此它不会像2010年那样创建STS网站。
如何在我的应用程序中支持注销方案?有没有我可以称之为FormsAuthentication.SignOut
的方法?
答案 0 :(得分:0)
这很简单,只需在WSFederationAuthenticationModule上调用SignOut方法:
FederatedAuthentication.WSFederationAuthenticationModule.SignOut("/MyPostSignoutRedirectUrl");
答案 1 :(得分:0)
要处理退出请求,请执行以下步骤:
点击退出链接后,清除联盟Cookie: System.Web.HttpContext.Current.Response.Cookies.Remove(stateKey);
使用WS-Federation签出参数将浏览器重定向到模拟颁发者,作为操作:
https://RelyingParty/SsoLogout.aspx?wa=wsignout1.0&wreply=...
使用WS-Federation命令-wa = wsignout1.0 退出发行人。
https://RelyingParty1/SsoLogout.aspx?wa=wsignoutcleanup1.0,
https://RelyingParty2/SsoLogout.aspx?wa= wsignoutcleanup1.0,
https://RelyingParty3/SsoLogout.aspx?wa= wsignoutcleanup1.0
这允许所有依赖方执行注销操作。
IT工作原理如下:
wa GET参数中定义的wsignout1.0和wsignoutcleanup1.0操作 遵守WS-Federation被动请求者的依赖方很好地理解了这一点 轮廓。这些操作允许来自领域中所有RP的注销操作。
答案 2 :(得分:0)
如何更改持久性cookie以及注销点击或会话结束会使fedauth cookie失效?
RP上的持久性Cookie:
<microsoft.identityModel>
<federatedAuthentication>
<wsFederation
persistentCookiesOnPassiveRedirects="true" />
<cookieHandler
persistentSessionLifetime="60.0:0:0" />
</federatedAuthentication>
</microsoft.identityModel>
并过期Cookies
var c = Request.Cookies["FedAuth"];
c.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(c);
c = Request.Cookies["FedAuth1"];
c.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(c);
此后您需要重定向。