我有一个主要的asp.net应用程序,它是用asp.net 1.1编写的。在应用程序下面运行几个2.0应用程序。要完全注销用户,我只需使用FormsAuthentication.SignOut注销1.1应用程序,还是比这更复杂?如何注销多个asp.net应用程序?
3
A
回答
5
你要做的就是所谓的单点登录和单点登录。根据您如何设置应用程序而有所不同。我将尝试澄清这些差异的起因。
要实现单点登录和单点登录,您需要使所有应用程序的cookie名称,保护和路径属性保持一致。
<authentication mode="Forms">
<forms name=".cookiename"
loginUrl="~/Login.aspx"
timeout="30"
path="/" />
</authentication>
接下来,您需要添加机器密钥,并且它们需要在所有应用程序之间保持一致。
<machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902"
encryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC"
validation="SHA1" />
您对应用程序使用二级或三级域名吗?如果是这样你需要做一点点加入域到cookie:
protected void Login(string userName, string password)
{
System.Web.HttpCookie cookie = FormsAuthentication.GetAuthCookie(userName, False);
cookie.Domain = "domain1.com";
cookie.Expires = DateTime.Now.AddDays(30);
Response.AppendCookie(cookie);
}
现在做单点登录了起来,叫FormsAuthentication.SignOut可能是不够的。下一个最好的办法是将cookie过期设置为过去的日期。这将确保cookie不会再次用于身份验证。
protected void Logout(string userName)
{
System.Web.HttpCookie cookie = FormsAuthentication.GetAuthCookie(userName, False);
cookie.Domain = "domain1.com";
cookie.Expires = DateTime.Now.AddDays(-1);
Response.AppendCookie(cookie);
}
我在考虑您对所有应用程序使用相同的数据库。如果应用程序使用单独的数据库进行注册和身份验证,那么我们需要做更多的事情。只要让我知道如果是这样的话。否则这应该适合你。在Request对象
在注销事件,而不是FormsAuthentication.GetAuthCookie方法使用Cookies集合如下:
0
如果您拥有适用于所有应用程序的中央会话存储区,则可能会更容易。然后,您可以在一个地方将会话设置为空。
0
这为我工作
HttpCookie cookie = Request.Cookies.Get(otherSiteCookieName);
cookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(cookie);
Ofcourse,这需要你知道的cookie名称您希望用户注销的站点 - 但如果您在所有Web应用程序中使用相同的cookie,则这不会成为问题。
0
我更喜欢使用的web.config
<authentication mode="Forms">
<forms domain=".tv.loc" loginUrl="~/signin" timeout="2880" name="auth" />
</authentication>
相关问题
- 1. 如何从我的asp.net应用程序注销用户?
- 2. 如何注销Facebook的应用程序
- 3. 如何在asp.net c#中注销我的应用程序?
- 4. 注销我的应用程序,如果注销Facebook的应用程序
- 5. Facebook应用程序注销
- 6. iOS - 注销应用程序
- 7. 从第一个应用程序注销触发时从第二个应用程序自动注销
- 8. ASP.NET MVC应用程序随机注销用户
- 9. ASP.NET应用程序池经常性地注销用户
- 10. 使用NSTimer注销应用程序
- 11. 从Facebook应用程序注销用户
- 12. Facebook注销导致从我的应用程序注销
- 13. 如何在不使用Android应用程序时注销android应用程序
- 14. 如何在Silverlight应用程序中注销应用程序退出?
- 15. iOS自动注销应用程序
- 16. MVC .NET应用程序开始注销
- 17. 无法注销WSFed应用程序
- 18. LoadRunner应用程序注销问题
- 19. 在应用程序中注销选项
- 20. Facebook的Android应用程序注销
- 21. 注销从应用程序中的应用程序设置
- 22. 如何在asp.net应用程序中注销按钮Windows身份验证
- 23. 如何使用REDIS + Node.js注销我的应用程序
- 24. 如何登录/注销Facebook用户到Facebook应用程序?
- 25. 我如何将用户从我的应用程序中注销?
- 26. 如何使用facebook-winjs-sdk从Windows8应用程序注销?
- 27. 如何从GWT应用程序注销用户?
- 28. 在一个应用程序中注销多个用户的FCM令牌
- 29. 如何在C#窗口应用程序中注销功能?
- 30. 如何在注销应用程序时释放内存?
“现在做单点登录了起来,叫FormsAuthentication.SignOut可能是不够的”,您可以指定为什么这是不够的? – 2016-06-16 12:47:27