老司机啊发车谁能看懂懂

SSO的基本概念
SSO英文全称Single Sign On(单点登录)。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。(本段内容来自百度百科)
今天这篇文章将介绍SSO的一种实现方式,代码超简单,仅用来验证我的思路是否可行,具体细节请大家来完善!
二级域名的单点登录
什么是二级域名呢?例如:
对于二级域名的单点登录,我们可以非常方便的通过共享cookie来实现,简单的说,就是在设置Form票据的时候,将cookie的domain设置为顶级域名即可,例如:
HttpCookie cookie = new HttpCookie(FormsAuthCookieName, encryptedTicket);
cookie.Expires = rememberMe ? expirationDate : DateTime.MinV
cookie.HttpOnly = true;
cookie.Path = "/";
cookie.Domain = "";
context.Response.Cookies.Set(cookie);
这种方式不涉及跨域,当cookie的domain属性设置为顶级域名之后,所有的二级域名都可以访问到身份验证的cookie,在服务器端只要验证了这个cookie就可以实现身份的验证。
但是,当跨域的时候,例如:
这个时候就不能共享cookie了,所以上面的解决方案就会失效。那么,要实现跨域的单点登录该如何做呢?请继续往下看。
跨域的单点登录
关于跨域的SSO的设计思路,我画了一个简单的流程图:
首先,我将跨域的SSO分为SSO-Server和SSO-Client两个部分,SSO-Client可以是多个的。
SSO-Server
SSO-Server主要负责用户登录、注销、为SSO-Client分配taken、验证taken的工作。
登录和注销采用的是Form认证方式,很多地方都有详细的介绍,我之前也写过一篇文章,想了解的可以去看看:
SSO-Server分配Token
为SSO-Client分配Token的部分,在SSO-Client请求SSO受信页面的时候,检查SSO-Server是否登录,如果没有登录则跳转到SSO-Server的登录页面,如果已登录,则执行分配Token的代码,在分配完成以后将TokenID作为参数添加到returnUrl中,并跳转到returnUrl,具体的分配代码如下:
if (Domain.Security.SmartAuthenticate.LoginUser != null)
//生成Token,并持久化Token
Domain.SSO.Entity.SSOToken token = new Entity.SSOToken();
token.User = new Entity.SSOUser();
token.User.UserName = Domain.Security.SmartAuthenticate.LoginUser.UserN
token.LoginID = Session.SessionID;
Domain.SSO.Entity.SSOToken.SSOTokenList.Add(token);
//拼接返回的url,参数中带Token
string spliter = returnUrl.Contains('?') ? "&" : "?";
returnUrl = returnUrl + spliter + "token=" + token.ID;
Response.Redirect(returnUrl);
当完成Token分配之后,页面将带有TokenID的参数跳转到SSO-Client页面,并在SSO-Client的Cookie中添加Token值,在以后的每次请求中,SSO-Client通过调用SSO-Server的服务来验证Token的合法性。
SSO-Server验证Token
我是通过WebService来验证Token的。
首先在SSO-Server定义一个Web Service:
[WebMethod]
public Entity.SSOToken ValidateToken(string tokenID)
if (!KeepToken(tokenID))
return null;
var token = Domain.SSO.Entity.SSOToken.SSOTokenList.Find(m =& m.ID == tokenID);
[WebMethod]
public bool KeepToken(string tokenID)
var token = Domain.SSO.Entity.SSOToken.SSOTokenList.Find(m =& m.ID == tokenID);
if (token == null)
return false;
if (token.IsTimeOut())
return false;
token.AuthTime = DateTime.N
return true;
ValidateToken用来验证TokenID的合法性,KeepToken用来保持Token不会过期。
SSO-Client通过调用Validate验证Token,并得到当前的登录用户信息。接下来看看SSO-Client的实现。
SSO-Client
SSO-Client作为受信系统来存在的,它自己没有认证系统,只能通过SSO-Server来完成用户身份认证的工作。
当用户请求SSO-Client的受保护资源时,SSO-Client会首先是否有TokenID,如果存在TokenID,则调用SSO-Server的WebService来验证这个TokenID是否合法;
验证成功以后将会返回SSOToken的实例,里面包含已登录的用户信息。具体代码如下:
if (!string.IsNullOrEmpty(tokenID))
AuthTokenService.AuthTokenServiceSoapClient client = new AuthTokenService.AuthTokenServiceSoapClient();
var token = client.ValidateToken(tokenID);
if (token != null)
this.lblMessage.Text = "登录成功,登录用户:"
+ token.User.UserName
+ "&a href='/logout.aspx?returnUrl="
+ Server.UrlEncode("")
+ "'&退出&/a&";
Response.Redirect("/sso.aspx?returnUrl=" +
Server.UrlEncode("/default.aspx"));
Response.Redirect("/sso.aspx?returnUrl=" +
Server.UrlEncode("/default.aspx"));
文章中已经介绍了我的具体思路和一些实现,如果你仍然感兴趣,可以下载我的代码&&
源代码的部署:
1. 在IIS中创建两个站点,分别绑定到SSO-Server和SSO-Client,它们绑定的域名分别是和
2. 在hosts文件中添加两行映射,将和映射到127.0.0.1,确保可以访问
3.访问,这个时候页面将跳转到的登录页面,用户名、密码随便输入,然后点击登录即可
我很认真的完成了这个方案,也感谢你很认真的看完!欢迎拍砖!
阅读(...) 评论()谁能看懂,_谁能看出是男孩还是女孩?_宝宝树
谁能看懂,
谁能看出是男孩还是女孩?
谁能看懂,相关的更多内容:
[知识] [知识] [知识] [知识] [知识] [知识] [日记] [日记] [日记] [日记] [日记] [日记]
需要账号和密码的外链可能是钓鱼网站,为了您的账号和财产安全,请勿提供任何有效信息!查看: 1003|回复: 7
这个代码谁能看懂我自己打开某G看到的
阅读权限10
这里面有没有授权验证。kEY好多不知道那个修改能不能达到破解效果。
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE plist PUBLIC &-//Apple//DTD PLIST 1.0//EN& &/DTDs/PropertyList-1.0.dtd&&
&plist version=&1.0&&
& & & & &key&DTSDKName&/key&
& & & & &string&iphoneos9.1&/string&
& & & & &key&CFBundleName&/key&
& & & & &string&iyk14k&/string&
& & & & &key&DTXcode&/key&
& & & & &string&0710&/string&
& & & & &key&UILaunchStoryboardName&/key&
& & & & &string&Launch Screen&/string&
& & & & &key&DTSDKBuild&/key&
& & & & &string&13B5110e&/string&
& & & & &key&CFBundleDevelopmentRegion&/key&
& & & & &string&en&/string&
& & & & &key&CFBundleVersion&/key&
& & & & &string&1&/string&
& & & & &key&BuildMachineOSBuild&/key&
& & & & &string&14F27&/string&
& & & & &key&DTPlatformName&/key&
& & & & &string&iphoneos&/string&
& & & & &key&CFBundleShortVersionString&/key&
& & & & &string&1.0&/string&
& & & & &key&CFBundlePackageType&/key&
& & & & &string&APPL&/string&
& & & & &key&CFBundleSupportedPlatforms&/key&
& & & & &array&
& & & & & & & & &string&iPhoneOS&/string&
& & & & &/array&
& & & & &key&CFBundleInfoDictionaryVersion&/key&
& & & & &string&6.0&/string&
& & & & &key&UIRequiredDeviceCapabilities&/key&
& & & & &array&
& & & & & & & & &string&armv7&/string&
& & & & &/array&
& & & & &key&CFBundleExecutable&/key&
& & & & &string&zfb14kApp&/string&
& & & & &key&DTCompiler&/key&
& & & & &string&pilers.llvm.clang.1_0&/string&
& & & & &key&UISupportedInterfaceOrientations~ipad&/key&
& & & & &array&
& & & & & & & & &string&UIInterfaceOrientationPortrait&/string&
& & & & & & & & &string&UIInterfaceOrientationPortraitUpsideDown&/string&
& & & & & & & & &string&UIInterfaceOrientationLandscapeLeft&/string&
& & & & & & & & &string&UIInterfaceOrientationLandscapeRight&/string&
& & & & &/array&
& & & & &key&CFBundleIdentifier&/key&
& & & & &string&com.sn0wg0d.zfb14kApp&/string&
& & & & &key&MinimumOSVersion&/key&
& & & & &string&7.0&/string&
& & & & &key&DTXcodeBuild&/key&
& & & & &string&7B60&/string&
& & & & &key&DTPlatformVersion&/key&
& & & & &string&9.1&/string&
& & & & &key&LSRequiresIPhoneOS&/key&
& & & & &true/&
& & & & &key&UISupportedInterfaceOrientations&/key&
& & & & &array&
& & & & & & & & &string&UIInterfaceOrientationPortrait&/string&
& & & & & & & & &string&UIInterfaceOrientationLandscapeLeft&/string&
& & & & & & & & &string&UIInterfaceOrientationLandscapeRight&/string&
& & & & &/array&
& & & & &key&CFBundleDisplayName&/key&
& & & & &string&iyk14k&/string&
& & & & &key&CFBundleSignature&/key&
& & & & &string&????&/string&
& & & & &key&UIDeviceFamily&/key&
& & & & &array&
& & & & & & & & &integer&1&/integer&
& & & & & & & & &integer&2&/integer&
& & & & &/array&
& & & & &key&DTPlatformBuild&/key&
& & & & &string&&/string&
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限30
这些是程序代码? 顶多就是个程序头文件代码! 你逗谁呢!
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
一个配置文件而已……你这属于灌水还是属于球破呢……
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
这是配置文件。。。。来自: Android客户端
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
iyk& & 你也进来了。
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
iyk& & 你也进来了。
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
少爷& &你微信群!
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
免责声明:吾爱破解论坛所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
( 沪ICP备号 | 京公网安备 87号 )
Powered by Discuz! X3.2
Comsenz Inc.谁能看懂这个单给我看看_百度宝宝知道VR到底怎么玩?一篇谁都能看懂的VR解读
航空大世界
原始标题:
航空科技融入美好生活!——航空大世界OK,今天我们就来说说科技!如今,说到与科技相关的元素,最火热的毫无疑问就是——!,就是Virtual Reality这两个英文单词的缩写,直接理解也就是,感觉是将两个矛盾的词汇综合在一起,那么到底如何理解比较准确呢?就是一副有点科幻感觉的眼镜?像是这个样子?是游戏机?穿越时空去打怪!好酷是娱乐设备?各种娱乐/游戏展会上,各种各样的设备目不暇接的感觉,就是炫酷的黑科技+前卫的娱乐效果是目前刺激行业火爆的因素所以就是能让我们的游戏机升级??NO!纯这样理解是狭隘的!!最正规的概念解读,应该是:综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术;计算机生成的、可交互的三维环境成为虚拟环境。读起来有点拗口,听起来有点玄乎?换个说法就很简单:用电脑构建另一个世界!所以,的应用范围是很广的,而不是一部游戏机这么简单与医疗:利用技术构建出真实的人体,进行医疗实验!与工业设计:立体化可互动的设计环境对比以前相对平面的设计环境,当然更有利于设计师进行创作!与城市规划:通过技术虚拟构架出未来城市,对于成本控制和降低投资风险都有莫大的好处!与主题乐园:把的娱乐性扩大化,规模化,将个人娱乐扩展升级成为大型团队娱乐以及文化引导,是未来大型娱乐平台发展的必然趋势!所以,是可能改变世界的技术游戏娱乐只是其中一个方面而已当然,游戏和娱乐,也是很重要的!甚至可以说是当前产业发展中最重要的一环!因为,目前普通大众能够接触到的设备大多还是以游戏娱乐为主要体验的,所以娱乐设备肩负着普及技术的艰巨任务!比如,目前市场上比较成熟的,可以通过普通销售渠道获得并且费用能够承受的产品就是这三个:依次为Oculus Rift、HTC Vive、PlayStation 本着本文浅显易懂的原则,什么参数设置就不提了,分别用一句话来解读就是:Oculus Rift:售价599美元,XBOX ONE手柄作为控制器,需要一台高配PC,软件资源从PC上获取HTC Vive:售价799美元,HTC自主开发控制器,需要一台高配PC,软件资源从PC上获取PlayStation :售价399美元,PS4手柄作为控制器,需要另外购买一台PS4,软件资源从PS4上获取(目前不支持PC)另外,请注意和AR的区别(Virtual Reality&)和AR(Augmented Reality&增强现实)并非同一个概念,但却被很多人混淆,简单来解释,是让你进入一个另外的世界,而AR是让现实的世界变得更加有趣。利用手机屏幕与现实进行互动,这是AR技术,而不是吹了半天,还得说说现状和问题!前沿科技,看起来非常美丽炫酷,但必然会存在很多适应性方面的问题,技术当然也不会例外,虽然目前市场对于吹捧有加,但是对于广大受众来说,是否能够得到完美的体验?是需要探讨的!1、同质化技术和设备目前进入爆发式增涨的阶段,但是其中沉陷的产品却是大同小异,相信很多去过国内设备展会的朋友都有一个感觉,那就是体验一两家之后,基本上就没有什么新鲜的东西可玩。2、概念太强,实体太弱有市场关注,自然就有热钱准备投资,在这样的环境之下,当前很多供应商更多的还是在概念和愿景上做文章,看上去很美,但实际的产品却差强人意,这样的发展趋势,必然加速行业洗牌,对于受众体验也会存在负面。3、重技术,轻内容目前针对产业,更多的还是体现在技术层面,大家都拼硬件配置、技术指标等,但与之对于的内容深度却相对匮乏,更多的设备仅仅只是提供一个的渠道,而没有一种真正的&穿越&感!简而言之,有,还得有IP!2、技术更新,形式没变使用技术,但为什么玩到的还是以前的&水果忍者&?这样的体验相信很多接触过设备的朋友都有过,虽然技术更新了,但娱乐体验的形式却没有跟上,不过是酒瓶换新装。那么,到底的正确打开方式是?新兴的行业虽然展现了强大的技术,但势必要经过市场的洗礼和受众的考验,方兴未艾的现在,很多层面其实是雾里看花水中望月,所以,这个行业更是需要强大的先行者!比如,技术+大型现代博物馆,是否会是一件非常炫酷的事情?作为新时代的博物馆,运用新的科技手段来增强观众对于展览内容的印象已成为一大趋势,曾经,我们只能隔着玻璃罩来观察展品,而现在我们可以通过技术直接穿越到那些激动人心的场景!近年来,国曼彻斯特大都会大学尝试在曼彻斯特美术馆中开发可穿戴讲解设备,并希望将来能够使用眼镜为观众提供推荐和导赏服务。英国的大英博物馆去年夏天与三星公司合作通过技术让游客进入青铜时代!那么,这种炫酷的博物馆,距离我们遥远么?当然不遥远!!成都航空大世界博物馆为打破传统博物馆的展示单一性,利用技术使更多的观众对展览的内容产生兴趣,博物馆分为专题展区、特种影院组团、航空资料室、电子竞技、互动体验。博物馆的核心即专题展厅内,将会穿插机舱影院,发动机台架实验、训练伞架纪录片等与装置结合的视频资料放映,以及各类多媒体互动体验设置,让展览形式变得更加多元化、互动性更高、更拥有带入感。同时,部分展品还会配合增强现实眼镜为观众展示更深入的展品背景探索。《博物馆之夜》的体验,可能会变为现实哦!而且,博物馆仅仅只是航空大世界各种新奇体验的一小部分,这里还有更多炫酷科技与主题娱乐相结合的惊喜,我们未来将会一一公开!期待么?那么,敬请关注 ↓&↓&↓&↓&↓&
VR资源网整理出品

我要回帖

更多关于 能5秒看懂的绝壁污神 的文章

 

随机推荐