在我的 MVC Web 应用程序中,我尝试使用内部身份验证和 Windows Azure Active Directory(无 ACS)作为身份提供程序。我可以将此应用程序添加到 Azure 应用程序,以便用户可以从 azure 进行身份验证。
我能够在没有 ACS 的情况下使用 Azure 和本地用户登录。
我的问题是我无法从我的 Web 应用程序中注销 Azure 用户。本地用户通过单击注销退出,但问题出在 azure 帐户上。我刚刚使用默认的简单 MVC 示例应用程序来测试这些,并在这里和那里做了一些修改,但没有什么大不了的。
[HttpPost]
// [ValidateAntiForgeryToken]
public ActionResult LogOff()
{
Session.Clear();
Session.Abandon();
WebSecurity.Logout();
FormsAuthentication.SignOut();
return RedirectToAction("Login", "Account");
}
这是我用来注销的代码。在我看来,我还面临着伪造令牌的问题。添加 @Html.AntiForgeryToken() 对我没有帮助。
我的实际代码只是 -
[HttpPost]
// [ValidateAntiForgeryToken]
public ActionResult LogOff()
{
WebSecurity.Logout();
return RedirectToAction("Login", "Account");
}
但是根据我在一些博客中找到的一些建议,我将其更改为前者。
如何注销/注销 azure 用户?我能否删除任何对我有帮助的 cookie?
当我单击注销时,它会返回相同的页面,而不会实际注销我。但是当我使用内部帐户时,该应用程序让我注销并返回登录页面。
我使用 VS2012 并使用 Identity and Access 工具将其连接到 Azure AD,使用 WS-Federation(协议)和 Windows Identity Foundation (WIF) 4.5(框架)。
谢谢 !