使用成员身份在asp.net中处理身份验证

使用成员身份在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

好的,问题是:

我有两个网站: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.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获得,所以请使用