如何从oauth2.0注销windows azure活动目录身份验证
发布时间:2020-12-14 02:50:28 所属栏目:Windows 来源:网络整理
导读:我们使用auth2.0进行 windows azure活动目录身份验证,其中在 https://login.microsoftonline.com/login.srf?wa=wsignin1.0wtrealm=上执行身份验证……在成功进行身份验证后,我们将重定向到我们的站点. 要注销该网站,我们会删除在我们网站上生成的所有Cookie,
我们使用auth2.0进行
windows azure活动目录身份验证,其中在
https://login.microsoftonline.com/login.srf?wa=wsignin1.0&wtrealm=上执行身份验证……在成功进行身份验证后,我们将重定向到我们的站点.
要注销该网站,我们会删除在我们网站上生成的所有Cookie,并再次重定向到login.microsoftonline.com/login.srf?wa=wsignin1.0u0026amp;wtrealm = …….网址,但此时我们是没有获得任何登录凭据屏幕和 使用访问令牌重定向到我们的网站.注销需要什么过程.因为如果我们删除所有cookie或关闭浏览器并重新打开网站工作并将我们重定向到login.microsoftonline.com/login.srf?wa=wsignin1.0u0026amp;wtrealm = …….. url. 我们使用以下代码进行注销过程 [NoCacheAttribute] public ActionResult LogOut() { UserCookieWrapper.delete_UserCookieWrapper(); //This function delete all the datamemeber of the UserCookieWrapper class string[] theCookies = System.IO.Directory.GetFiles(Environment.GetFolderPath( Environment.SpecialFolder.Cookies)); foreach(string currentFile in theCookies) { try { System.IO.File.Delete(currentFile); } catch(Exception objEx) { } } Response.Clear(); return RedirectToAction("Index","Login"); } 解决方法
清除您创建的cookie对您没有帮助,因为用户仍然使用Azure AD登录.这是Web-SSO(单点登录)的工作原理.无论您使用Azure AD进行身份验证的协议如何,您仍需要正确实施注销 – 联合注销!您可以在互联网上找到任何web-sso提供商,例如谷歌,Facebook,LinkedIn,Twitter等.
您所做的只是将用户从您的应用程序中签名,而不是从身份提供商处签名.一旦您的应用程序将用户重定向到选定的身份提供者(在您的情况下是AAD),如果用户有一个活动会话,则不会看到登录屏幕! 为了正确实现联合注销,您必须通读Implementing SSO with Azure Active Directory.您可以快进到“实施注销控制器”步骤.这将显示如下代码: public void SignOut() { WsFederationConfiguration fc = FederatedAuthentication.FederationConfiguration.WsFederationConfiguration; string request = System.Web.HttpContext.Current.Request.Url.ToString(); string wreply = request.Substring(0,request.Length - 7); SignOutRequestMessage soMessage = new SignOutRequestMessage(new Uri(fc.Issuer),wreply); soMessage.SetParameter("wtrealm",fc.Realm); FederatedAuthentication.SessionAuthenticationModule.SignOut(); Response.Redirect(soMessage.WriteQueryString()); } 请仔细阅读整个部分(更好的整篇文章),以了解代码的作用以及为什么必须采用这种方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |