如果cookie存在,即使它是在另一个应用程序中创建的,如何检查? (使用JS或C#)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如果cookie存在,即使它是在另一个应用程序中创建的,如何检查? (使用JS或C#),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2266字,纯文字阅读大概需要4分钟。
内容图文
我有几个应用程序,其中一个是管理身份验证的中央应用程序,其中LogOn页面作为IFrame导入到其他应用程序.
当userName和密码正确时,我创建一个名为userInfo的cookie.
现在,在当前的应用程序中,我想检查userInfo的cookie是否存在.我想我应该检查它是否存在于浏览器中(在客户端).
它必须是可能的,所以我该怎么做呢?
提前致谢.
解决方法:
Cookie不能跨域共享.如果您的应用程序不在同一个域中托管,则必须忘记这一点.它不起作用,因为浏览器(出于明显的安全原因)不会跨域发送cookie.还有其他方法可以实现跨域单点登录(请参阅我的答案的第二部分).
现在让我们假设您的应用程序位于同一个域中,并且您有多个应用程序分布在根域的不同子域中:
> login.foo.com
> app.foo.com
> xxx.foo.com
并且您希望在这些子域之间共享身份验证.您所要做的就是指定将web.config中的domain属性设置为根域:
<authentication mode="Forms">
<forms
loginUrl="https://login.foo.com"
requireSSL="true"
protection="All"
timeout="120"
domain="foo.com"
slidingExpiration="false"
name="sso" />
</authentication>
应将相同的配置应用于所有应用程序的web.config.而这几乎就是你需要做的.一旦用户在其中一个子域上进行身份验证,由于cookie可以跨子域共享,因此他将自动在其他子域上进行身份验证.
如果您想实现跨域单点登录,那么您将不得不采取不同的方法.您可以在不同的应用程序之间使用相同的machine keys来加密身份验证令牌.以下是步骤:
>用户导航到https://foo.com并显示登录屏幕,因为他尚未在此域上进行身份验证.
>用户进行身份验证,并发出身份验证cookie并对foo.com域有效.
>现在,用户需要访问https://bar.com并在此域上自动进行身份验证.在https://foo.com上的某个页面上,您可以创建一个包含要发布的身份验证cookie值的表单:
<form action="https://bar.com" method="post">
<input type="hidden" name="token" value="PUT THE VALUE OF THE AUTHENTICATION COOKIE HERE" />
<button type="submit">Go to bar.com</button>
</form>
>用户将身份验证cookie提交给bar.com.接收此表单提交的脚本将读取已发布的身份验证令牌值,并使用FormsAuthentication.Decrypt方法解密身份验证票证并读取用户名.由于foo.com和bar.com上的两个应用程序使用相同的机器密钥,因此在foo.com上加密的故障单将由bar.com成功解密.
> bar.com上的脚本从令牌中提取了经过身份验证的用户名,它会使用FormsAuthentication.SetAuthCookie方法在bar.com上发出有效的表单身份验证Cookie.
>用户现在在bar.com上进行了身份验证
此模型的整体安全性依赖于在将表单身份验证令牌从foo.com发布到bar.com时使用SSL的事实,因此man-in-the-middle无法捕获令牌,并且两个应用程序共享相同的计算机密钥以进行加密和解密那些代币.
内容总结
以上是互联网集市为您收集整理的如果cookie存在,即使它是在另一个应用程序中创建的,如何检查? (使用JS或C#)全部内容,希望文章能够帮你解决如果cookie存在,即使它是在另一个应用程序中创建的,如何检查? (使用JS或C#)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。