【发布时间】:2017-03-10 17:14:07
【问题描述】:
我正在尝试使用 ADFS 设置新的 MVC 5 项目和新的 2016 服务器。我可以使用 Oauth 2 和 OpenID Connect 进行身份验证。我遇到的问题是当我尝试注销应用程序时。注销链接指向默认的 /Account/SignOut 操作。当调用该操作时,我会被重定向到注销后重定向 uri,即https://website.com。此重定向循环,直到浏览器错误“网站重定向您太多次”。
这是我的退出方法。
public void SignOut()
{
string callbackUrl = Url.Action("SignOutCallback", "Account", routeValues: null, protocol: Request.Url.Scheme);
// Send an OpenID Connect sign-out request.
HttpContext.GetOwinContext().Authentication.SignOut(
new AuthenticationProperties { RedirectUri = callbackUrl },
OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType
);
}
如果我只是打电话
HttpContext.GetOwinContext().Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType)
注销失败,但至少不会发生持续重定向。
是否存在 Authentication.Signout() 方法的过载,该方法将我注销然后重定向到注销后重定向 uri?
【问题讨论】:
-
这只是一条评论,让您知道您并不孤单。我自己正在调查这个问题。从我目前看到的情况来看,ADFS 2016 上的“众所周知的端点”中似乎没有像 Azure Active Directory 那样的注销端点。
-
Chuck,我还在为此苦苦挣扎,但这个站点有一个很好的示例,说明如何设置客户端,即使它是针对 Azure 的。 bitoftech.net/2016/08/31/…。互联网上关于如何设置本地单点登录的信息似乎非常有限。
-
谢谢。我已经使用 OID Connect 完成了 AAD 单点登录。这是我第一次参加 ADFS 2016。Azure 知名端点上有一个注销端点,但在 ADFS 上似乎不是这样。
标签: asp.net-mvc adfs openid-connect