我有2页:Login.aspx和Satis.aspx。如果身份验证正确,我会从Login.aspx重定向到Satis.aspx。如果我从满意后注销我重定向到Login.aspx。但如果我在网络扫描仪上写了satisf.aspx'url,我输入了satisf.aspx。但我没有登录Satis.aspx。我不应该直接进入Satis.aspx。
我的网络配置:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" path="/" protection="All">
<credentials>
<user name="a" password="a"></user>
</credentials>
</forms>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<location path="~/ContentPages/Satis/Satis.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Login.aspx.cs:
protected void lnkSubmit_Click(object sender, EventArgs e)
{
if(FormsAuthentication.Authenticate(UserEmail.Value,UserPass.Value))
{
FormsAuthentication.RedirectFromLoginPage
(UserEmail.Value, PersistForms.Checked);
}
else
Msg.Text = "Invalid Credentials: Please try again";
}
Satis.aspx
protected void LogoutSystem_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("~/Login/Login.aspx");
}
答案 0 :(得分:3)
我认为你应该在你的web.config文件中使用“deny users =”?“”而不是“allow users =”*“”
[*]表示所有用户甚至是那些未通过身份验证的用户
[?]仅表示通过身份验证的用户