2011-10-06 146 views
0

我的页面有一个日志是主页,以便位于www.domainname.com窗体身份验证asp.net VB

当有人进入这个网页它增加了一个RETURNURL到字符串,以便他们在:

www.domainname.com/default.aspx?ReturnUrl=%2f因此,当他们登录后,他们会返回到http://www.domainname.com/,这是登录页面,因此访问他们必须登录两次的网站。

有谁知道如何解决这个问题?我认为一个解决办法是让每个人都可以访问主页 - http://www.domainname.com/以及http://www.domainname.com/default.aspx,但我不知道如何实现这一目标。

我希望所有用户角色在登录之前被拒绝访问除主页之外的每个页面,我还有一个admin/cms部分,只有Admin角色才能访问,但每个人都可以访问cms登录页面。

我现在有这个在我的web.config

 <authentication mode="Forms"> 
     <forms protection="All" loginUrl="default.aspx" defaultUrl="~/home/" /> 
    </authentication> 
    <authorization> 
     <allow roles="Admin, User"/> 
     <deny users="?" /> 
    </authorization> 

    <location path="default.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

<location path="cms/default.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

<location path="cms"> 
    <system.web> 
     <authorization> 
      <allow roles="Admin"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

回答

3

好吧,我似乎已经做了一点运气。

我只是改变

<authentication mode="Forms"> 
    <forms protection="All" loginUrl="default.aspx" defaultUrl="~/home/" /> 
</authentication> 

<authentication mode="Forms"> 
    <forms protection="All" loginUrl="/" defaultUrl="~/home/" /> 
</authentication> 
0

你应该将它们发送到你希望他们默认的页面。你应该做的是在单独的页面(login.aspx)上创建登录页面,然后将default.aspx页面设置为主页。然后,当他们转到default.aspx时,他们将被重定向到login.aspx?ReturnURL =%2f。

+0

似乎有点奇怪,你必须有这样的说法,被设计成具有主页,登录页面。 – JBoom