使用成员身份在asp.net中处理身份验证
好的,问题是: 我有两个网站:www.mysite.com和blog.mysite.com(假网站名),它们应该共享身份验证。 登录页面位于www.mysite.com/login/login.aspx 现在,博客网站的web.config包含以下身份验证部分:使用成员身份在asp.net中处理身份验证,asp.net,authentication,sqlmembershipprovider,Asp.net,Authentication,Sqlmembershipprovider,好的,问题是: 我有两个网站:www.mysite.com和blog.mysite.com(假网站名),它们应该共享身份验证。 登录页面位于www.mysite.com/login/login.aspx 现在,博客网站的web.config包含以下身份验证部分: <authentication mode="Forms"> <forms timeout="50000000" loginUrl="http://www.mysite.com/login/login.asp
<authentication mode="Forms">
<forms timeout="50000000"
loginUrl="http://www.mysite.com/login/login.aspx"
defaultUrl="~/"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
现在我点击了blog.mysite.com/andrey/page.aspx
,它将我重定向到www
网站上的登录页面。真正的问题是“reditect”查询字符串将只包含相对页面url(andrey/page.aspx
),因此当我登录时,它会尝试将我重定向到www.mysite.com/andrey/page.aspx
,而不是blog.mysite.com/andrey/page.aspx
,我从那里开始的,所以当然一切都失败了
当成员对象跳转到登录页面时,是否有方法告诉它将完整路径放入“重定向”查询字符串参数中
谢谢!
Andrey假设每个域都有自己的web.config,我认为这可能会起作用 1) 为www.mysite.com和blog.mysite.com创建登录页面
2) 将两者指向同一成员数据库
3) 确保两者具有相同的成员资格applicationName属性集:
<membership><providers><add applicationName="mySite">
并手动重定向到http引用程序
我刚刚在公司的文档中看到了这一点
默认情况下,ReturnUrl变量
必须引用
当前应用程序。如果返回URL
以不同的方式引用页面
应用程序或其他服务器上,
RedirectFromLoginPage方法
重定向到中的URL
DefaultUrl属性。如果你想
允许重定向到外部页面
在当前应用程序中,必须设置
使能CrossAppRedirects属性
使用enableCrossAppRedirects设置为true
窗体配置的属性
元素。安全说明安全说明:
设置EnableCrossAppRedirects
属性设置为true以允许
跨应用程序重定向是一种
潜在的安全威胁。什么时候
跨应用程序重定向是
如果允许,您的站点易受攻击
使用您的
登录页面以说服您的网站
用户知道他们正在使用安全的
在你的网站上。改善安全
使用交叉应用程序时
重定向时,您应该覆盖
重定向FromLoginPage方法以允许
仅重定向到已批准的网站
弄乱这个属性会有帮助吗?假设每个域都有自己的web.config,我认为这可能会起作用
1) 为www.mysite.com和blog.mysite.com创建登录页面
2) 将两者指向同一成员数据库
3) 确保两者具有相同的成员资格applicationName属性集:
<membership><providers><add applicationName="mySite">
并手动重定向到http引用程序
我刚刚在公司的文档中看到了这一点
默认情况下,ReturnUrl变量
必须引用
当前应用程序。如果返回URL
以不同的方式引用页面
应用程序或其他服务器上,
RedirectFromLoginPage方法
重定向到中的URL
DefaultUrl属性。如果你想
允许重定向到外部页面
在当前应用程序中,必须设置
使能CrossAppRedirects属性
使用enableCrossAppRedirects设置为true
窗体配置的属性
元素。安全说明安全说明:
设置EnableCrossAppRedirects
属性设置为true以允许
跨应用程序重定向是一种
潜在的安全威胁。什么时候
跨应用程序重定向是
如果允许,您的站点易受攻击
使用您的
登录页面以说服您的网站
用户知道他们正在使用安全的
在你的网站上。改善安全
使用交叉应用程序时
重定向时,您应该覆盖
重定向FromLoginPage方法以允许
仅重定向到已批准的网站
弄乱这个属性有什么帮助吗?好吧,我还是想有一个地方登录门户。你知道如何控制重定向URL吗?到目前为止,我所能做的就是对FormsAuthenticationModule类进行反向工程和重新命名,进行更改,使其将整个URL放入重定向URL,并使用该模块而不是Microsoft的FormsAuthenticationModule类。不,我不知道有什么方法可以做到这一点。如果两个登录页面除了URL外看起来完全相同,并且每个页面都可以让您登录到这两个站点,那么在我看来,这与“一个地方登录门户”的用户体验并没有什么不同。同意,但我实际上有7个站点,如果可以避免的话,为每一个站点支持登录页面是不必要的开销。我想我必须重写FormsAuthenticationModule类以满足我的需要…我实际上不认为在第三级域blogs.mysite.com上创建的身份验证cookie可以从第二级域www.mysite.com上获得,因此如果用户最初登录到blogs,则在进入www页面时必须重新登录,这是不可接受的。嗯,我仍然想有一个地方登录门户。你知道如何控制重定向URL吗?到目前为止,我所能做的就是对FormsAuthenticationModule类进行反向工程和重新命名,进行更改,使其将整个URL放入重定向URL,并使用该模块而不是Microsoft的FormsAuthenticationModule类。不,我不知道有什么方法可以做到这一点。如果两个登录页面除了URL外看起来完全相同,并且每个页面都可以让您登录到这两个站点,那么在我看来,这与“一个地方登录门户”的用户体验并没有什么不同。同意,但我实际上有7个站点,如果可以避免的话,为每一个站点支持登录页面是不必要的开销。我想我必须重写FormsAuthenticationModule类以满足我的需要…我实际上不认为在第三级域blogs.mysite.com上创建的身份验证cookie可以从第二级域www.mysite.com获得,所以请使用