asp.net – 表单认证ReturnUrl和子域名用于单点登录
发布时间:2020-12-15 23:41:21 所属栏目:asp.Net 来源:网络整理
导读:我有一个域http://abc.com和一个子域名http://sub.abc.com.我通过共享表单身份验证cookie来实现两个站点之间的单一登录.这通过使两个站点在machineKey中共享validationKey和decryptKey来实现. 当用户点击子域中的页面时,我希望用户在根域中进行身份验证,并重
我有一个域http://abc.com和一个子域名http://sub.abc.com.我通过共享表单身份验证cookie来实现两个站点之间的单一登录.这通过使两个站点在machineKey中共享validationKey和decryptKey来实现.
当用户点击子域中的页面时,我希望用户在根域中进行身份验证,并重定向到子域.用户当前被重定向到登录页面,但是ReturnUrl想要重定向到根站点. 例如.目前:http://abc.com/login.aspx?ReturnUrl=/secure/default.aspx 但我想要:http://abc.com/login.aspx?ReturnUrl=http://sub.abc.com/secure/default.aspx 怎么可以实现? 在我的子域名的web.config中,我有一个这样配置的auth: <authentication mode="Forms"> <forms name=".ASPNET" loginUrl="http://abc.com/login.aspx" protection="All" timeout="1440" path="/" domain="abc.com" enableCrossAppRedirects="true" /> </authentication> 解决方法
我通过在我的子域中的表单元素中设置一个querystring来解决这个问题:
<authentication mode="Forms"> <forms name=".ASPNET" loginUrl="http://abc.com/login.aspx?returnsite=sub" protection="All" timeout="1440" path="/" domain="abc.com" enableCrossAppRedirects="true" /> </authentication> 然后在我的主要网站的验证码中,我检查该查询字符串.如果它存在我通过将我的子域名附加到returnurl来构建重定向网址. 返回网站的查询字符串真的只是作为一个标志,我需要重定向到一个已知的子域,否则它将只与重定向到当前域.这应该(理论上)阻止跨站脚本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在Repeater控件中实现功能链接
- asp.net-mvc – .NET MVC3中多页面表单的最佳实践/设计
- asp.net-mvc – 基于MVC中应用程序的语言选择对必需字段验证
- asp.net中XML如何做增删改查操作
- asp.net – Web.Debug.config没有将连接字符串转换为MVC 5项
- asp.net – .NET VirtualPathProviders和预编译
- asp.net – Asp Button悬停和CSS
- asp.net-mvc-3 – ASP.NET MVC 3.0 – 为什么在视图中强类型
- asp.net core 系列 5 MVC框架路由(上)
- asp.net – SQL网络接口,错误:26 – 定位服务器/实例指定错
推荐文章
站长推荐
热点阅读