【发布时间】:2014-07-15 13:01:09
【问题描述】:
我有一个登录页面和一个主页。没有登录就无法访问主页,但是在我登录并单击主页上的注销后。用户可以从浏览器的地址行访问主页。怎样才能防止这种情况?这是我的实现
AdminPanelLogin.aspx.cs中的登录点击方法:
protected void adminLoginButton_Click(object sender, EventArgs e)
{
String adminName = adminNameText.Text;
String password = adminPwdText.Text;
AdminPanelLoginProcess aplp = new AdminPanelLoginProcess();
if (aplp.adminLogin(adminName, password))
{
Session["AdminAuthentication"] = aplp.Admn.AdminID;
Response.Redirect("AdminPanel.aspx");
}
else
{
Response.Write("<script>alert('Login failed !');</script>");
}
}
AdminPanel.aspx.cs 中的注销点击方法
protected void adminPanelLogoutLink_Click(object sender, EventArgs e)
{
Session["AdminAuthentication"] = null;
Session.Abandon();
Response.Redirect("AdminPanelLogin.aspx");
}
AdminPanel.aspx.cs 页面加载方法:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["AdminAuthentication"] == null)
{
Response.Redirect("AdminPanelLogin.aspx");
}
else
{
if (!IsPostBack)
{
showProducts();
showModels();
showShoes();
}
else
{
if (Session["AdminAuthentication"] == null)
{
Response.Redirect("AdminPanelLogin.aspx");
}
}
}
}
【问题讨论】:
-
您是否需要防止“用户可以从浏览器的地址行访问主页。”?这种情况下的主页是什么,是AdminPanel.aspx吗?
-
你用的是什么认证方式?
-
代码看起来不错,应该可以按预期工作。您能否确认:您有无需输入登录名和密码即可访问 AdminPanel.aspx 的用户?这些用户是授权用户(有登录名和密码,但他们没有输入任何内容)还是这些用户没有授权?
-
我没有在网络配置中声明任何模式。但它是一个网络表单应用程序。
-
@smirnov 没有登录,就无法访问。用户登录并注销后,我可以通过地址 ar 或浏览器的后退按钮访问 adminpanel.aspx。
标签: c# asp.net session login session-cookies