ASP.NET身份验证要求登录默认页面

时间:2012-04-13 19:28:22

标签: asp.net webforms

我在ASP.NET项目中添加了身份验证表单。主页面(在我的情况下是default.aspx)不应该受密码保护,所以我将这一行添加到web.config:

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

问题是当我输入网址时,说http://mywebapp.university.edu/,我得到了登录页面。果然,如果我输入http://mywebapp.university.edu/default.aspx。然后我到了页面而不必提供任何凭证。如果我输入我在default.aspx页面上提供的URL而不必在网址上明确输入,我该怎么办?

谢谢!

3 个答案:

答案 0 :(得分:0)

每当用户直接转到default页面时,他将verified使用user.identity,如果不是redirected Login page

protected void Page_Load(object sender, EventArgs e)
{
     if (User.Identity.IsAuthenticated) // if the user is already logged in
     {
          Response.Redirect("~/Default.aspx");
     }
     else
     {    
          Response.Redirect("~/Login.aspx");
     }
}

答案 1 :(得分:0)

在IIS中,转到以下链接

中给出的网站属性
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/dc6eb1b4-9028-4308-9935-52b64edfad36.mspx?mfr=true

将default.aspx页面上移到登录页面上方,保存并测试。

答案 2 :(得分:0)

所以我在Login.aspx页面上提出了这个可怕的黑客攻击:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["ReturnUrl"] == "/")
        {
            Response.Redirect("default.aspx");
        }
    }

现在它有效。如果有人知道如何解决这个问题,我仍然接受答案,谢谢!