加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

使用Azure ACS时无法从Active Directory注销

发布时间:2020-12-16 07:40:24 所属栏目:asp.Net 来源:网络整理
导读:我在我的MVC 4应用程序中使用ACS 2.0. 它已配置为登录,它适用于各种提供程序,包括ADFS. 我需要实现注销功能. 由于this question已经过时,我使用了these samples的代码: 这是它的样子: // Load Identity Configuration FederationConfiguration config = Fe
我在我的MVC 4应用程序中使用ACS 2.0.

它已配置为登录,它适用于各种提供程序,包括ADFS.
我需要实现注销功能.

由于this question已经过时,我使用了these samples的代码:

这是它的样子:

// Load Identity Configuration 
    FederationConfiguration config = FederatedAuthentication.FederationConfiguration;

    // Get wtrealm from WsFederationConfiguation Section 
    string wtrealm = config.WsFederationConfiguration.Realm;
    string wreply = wtrealm; //return url

    // Read the ACS Ws-Federation endpoint from web.Config 
    string wsFederationEndpoint = ConfigurationManager.AppSettings["ida:Issuer"];

    SignOutRequestMessage signoutRequestMessage = new SignOutRequestMessage(new Uri(wsFederationEndpoint));

    signoutRequestMessage.Parameters.Add("wreply",wreply);
    signoutRequestMessage.Parameters.Add("wtrealm",wtrealm);

    FederatedAuthentication.SessionAuthenticationModule.SignOut();

    var signoutUrl = signoutRequestMessage.WriteQueryString();

结果,我得到了我应该重定向的注销URL,它将处理令牌并将我发送回去. URL如下所示:

https://myacsnamespace.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wreply=http%3a%2f%2flocalhost%3a61192%2f&wtrealm=http%3a%2f%2flocalhost%3a61192%2f

因此,它可以像Google,Yahoo和Microsoft帐户一样正常运行.
当我退出并尝试访问受保护区域时,我会获得一个身份提供商列表,即使我选择了相同的提供商,我也必须再次登录.

但是,当我使用ADFS提供程序时,它的工作原理如下:

>我点击退出并进入可用提供商的页面
>我再次选择ADFS提供商
>我使用旧的AD凭证进入保护区
>如果我将ADFS作为唯一的提供者,则跳过上面的步骤2,并且
我不断登录而无法更改用户.

当我看到会发生什么时,ACS不会处置它从ADFS获得的安全令牌,并重新使用它.

您是否有任何关于如何强制ACS处理此令牌的线索?

提前致谢!

解决方法

1 for @ oren-melzer的答案:浏览器缓存http基本凭据并自动重新发送它们.移动到表单auth(使用cookie)或注销,特别是拒绝浏览器的auth标头,不断返回401.有时这个“返回401有效凭据”用于清除浏览器,有时您只需要用户关闭浏览器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读