ASP.NET Forms验证实现子域名(SubDomain)共享登陆下的缺陷

2015-08-24 23:46:15 文章

一、什么是单点登录

单点登录就是在多个web应用程序中,实现统一登录方式,一但登录了某web应 用程序,其它相关联的web应用程序都无需再次登录,一个地方退出,所有相关联的 web应用程序都退出.

二、通过利用ASP.NET Forms验证模式可以实现子域名(SubDomain)共享登陆下 的缺陷

要利用Asp.NET Form验证模式实现同一主域下不同子域名共享登陆状态需要进 行以下配置

配置Web.config

1.把Asp.net的认证模式改为Forms认证模式,domain 要等于你的应用程序对 应的域名,例如: .test.cn


protection="All"timeout="30"path="/"requireSSL="false" slidingExpiration="true"
enableCrossAppRedirects="false" cookieless="UseDeviceProfile"/>

2.配置针对存储在cookie中的票据信息进行加密解密的方式

validationKey="CF10047DB84FBA7F418BF30F9697B1D6EDDA3A90837F3C57B336B401 6E47986135B31B2432F7CB20A6858DFFB
E4E5ECD1451E17C91830993445D0EA5708BABBD" decryptionKey="5D37DDB652B86956"validation="SHA1"/>

备注:生成machineKey网址

http://www.aspnetresources.com/tools/keycreator.aspx

登陆创建验证票据

1.应用程序登陆页面(Login.aspx)输入用户名、密码并验证通过后,创建一张 加密过的验证票据,并存储在cookie中

//创建验证票
FormsAuthenticationTicketticket
=newFormsAuthenticationTicket(1, name,DateTime.Now,
DateTime.Now.AddDays(1d), false,
HttpContext.Current.Request.UserHostAddress
);
stringauthTicket= FormsAuthentication.Encrypt(ticket);
HttpCookiecookie=newHttpCookie (FormsAuthentication.FormsCookieName,authTicket);
cookie.Domain= ConfigurationManager.AppSettings["SSODomain"];
HttpContext.Current.Response.Cookies.Add (cookie);

本文地址:https://www.sdfzl.com/jiaocheng-36142-1.shtml

相关阅读

热门