2012年声称意识到MVC应用程序 - 注销

时间:2012-10-13 14:42:11

标签: c# asp.net-mvc visual-studio-2012 wif

我在.net 4.5中创建了一个MVC 4应用程序并安装了Identity and Access工具,以便我可以创建一个声明感知应用程序。我配置了应用程序,以便它使用2012年附带的新LocalSTS,因此它不会像2010年那样创建STS网站。

如何在我的应用程序中支持注销方案?有没有我可以称之为FormsAuthentication.SignOut的方法?

3 个答案:

答案 0 :(得分:0)

这很简单,只需在WSFederationAuthenticationModule上调用SignOut方法:

FederatedAuthentication.WSFederationAuthenticationModule.SignOut("/MyPostSignoutRedirectUrl");

答案 1 :(得分:0)

要处理退出请求,请执行以下步骤:

  1. 点击退出链接后,清除联盟Cookie: System.Web.HttpContext.Current.Response.Cookies.Remove(stateKey);

  2. 使用WS-Federation签出参数将浏览器重定向到模拟颁发者,作为操作:

  3. https://RelyingParty/SsoLogout.aspx?wa=wsignout1.0&wreply=...

    使用WS-Federation命令-wa = wsignout1.0 退出发行人。

    1. 从cookie中检索RP列表并将注销清理命令发送到 他们每个人:
    2.  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);

此后您需要重定向。