ASPNET实现单点登陆SSO适用于多种情况
来源:诚信在线    发布时间:2017-07-01 15:08:41

  HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));//加密身份信息,留存至Cookie

  string userData = JsonHelper.ScriptSerialize(user);

  cookie.Domain = ".zuowenjun.cn";

  第三种:差别域名高的应用程序完成SSO(也适上以上状况)

  重要是采取页面URL传参并重定历来完成,这种完成的办法有不少,但大概必要细致的是安全性成绩。

  Form考证实在是基于身份cookie的考证。客户上岸后,天生一个包罗用户身份信息(蕴含一个ticket)的cookie,这个cookie的名字便是正在web.config面Authentication节form设定的name信息,如

  复制代码 代码以下:

  复制代码 代码以下:

  复制代码 代码以下:

  此处,.ASPNETAUTH便是这个Cookie的名字。经由过程正在Request.Cookies荟萃面包孕这个cookie,完成用户身份信息的通报。以是,同享身份验证信息的思绪很简朴:只有这个身份验证cookie能正在自域名外同享,Form考证信息做作能够同享!

  对比主要的两个属性是 name 战protection. 当 protection属性配置为 "All",经由过程Hash值举行加密以及考证数据皆寄放正在Cookie外.默许的考证以及加密利用的Key皆存储正在machine.config文件,咱们能够正在应用程序的Web.Config文件掩盖这些值.默认值以下:

  复制代码 代码以下:

  Response.Cookies.Add(cookie);

  IsolateApps暗示为每一个应用程序天生分歧的Key.咱们不克不及运用这个.为了能正在多个应用程序外利用沟通的Key去加密解密cookie,咱们能够移除了IsolateApps 选项或更好的方式是正在全部需求完成SSO的应用程序的Web.Config外配置一个详细的Key值:

  代码完成:

  FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(一, user.userid.ToString(), DateTime.Now, DateTime.Now.AddHours(四), false, userData);

  第一种:异主域但分歧子域之间完成单点登岸

  第二种:虚拟目录的主使用战子运用之间完成SSO

  你大概感兴趣的文章:ASP.NET 五外运用AzureAD完成单点登录asp.net 简略单点登录技巧阐发一个简朴的asp.net 单点登录完成正在ASP.NET 外完成单点登录asp.net简略完成单点登录(SSO)的办法


诚信在线 除注明原创以外,其余均来自互联网以及微信朋友圈,如有侵权请联系站长立即删除!
文章地址:http://www.my517517.com/YY/20170701386.html



上一篇:NET调用控制台下生成的exe文件传参及获取返回参数的思路及代码 下一篇:ASPNET中利用WebClient上传图片到远程服务的方法