我在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而不必在网址上明确输入,我该怎么办?
谢谢!
答案 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");
}
}
现在它有效。如果有人知道如何解决这个问题,我仍然接受答案,谢谢!