如何强制用户注销子域修改?

时间:2011-04-19 16:47:46

标签: asp.net security forms-authentication

DNS的* .website.com通配符指向website.com。

Client A会获得一个类似于http://clientA.website.com/的网址,并点击与client B相同的登录页面。 Client A登录,然后将子域名更改为client B's。当用户更改子域时,如何强制用户自动返回登录页面?

这会起作用吗?

    <authentication mode="Forms">
      <forms slidingExpiration="true" loginUrl="Views\Login.aspx" 
        defaultUrl="Views\Login.aspx" protection="All" timeout="300" 
        cookieless="UseCookies" enableCrossAppRedirects="false" 
        domain="*.website.com" <!--Will this property and value do what I want?-->
        name=".ASPXFORMSAUTH"/>
    </authentication>

谢谢!

1 个答案:

答案 0 :(得分:1)

当他们登录时你可以这样做:

Session["validhost"] = Request.Url.Host;

然后在Global.asax.cs中你可以拥有:

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
  if (Session["validhost"] != null && Request.Url.Host != Session["validhost"]){
    Session.Abandon();
    //some sort of redirect
  }
}

根据您在网站上存储的内容,您肯定可以对此进行一些更改,但这种基本模式可以正常运行。