具有HTTP 401状态的无限循环

时间:2010-07-07 21:15:16

标签: asp.net http http-status-code-401

我编写了一个需要HTTP基本授权的ASP.NET页面,我将其置于Page_Load函数中:

void Page_Load(object sender, EventArgs e)
{
   string auth = Request.Headers["Authorization"];     

   if (string.IsNullOrEmpty(auth))
   {
      Response.StatusCode = 401;
   }
   else
   {  
      string[] usernameAndPassword = Encoding.UTF8.GetString(Convert.FromBase64String(auth)).Split(':');
      string username = usernameAndPassword[0];
      string password = usernameAndPassword[1];         
      Login(username, password);
   }
}

当我尝试在浏览器(Firefox或IE)中查看该页面时,它会询问我的用户名和密码,然后......再次询问我的用户名和密码。

为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:2)

这应该通过httpmodule来处理。请考虑以下文章。 http://www.codeproject.com/KB/web-security/AspNetCustomAuth.aspx