我有一个非常简单的asp网站登录系统:
在Default.aspx页面上:
protected void LoginClicked(object sender, EventArgs e)
{
string userName = ConfigurationManager.AppSettings["UserName"].ToString();
string password = ConfigurationManager.AppSettings["Password"].ToString();
string sanitizeUsername =uname.Text;
string sanitizePassword = upass.Text;
//System.Diagnostics.Debug.WriteLine(sanitizeUsername +" "+ sanitizePassword);
if (sanitizePassword == password && sanitizeUsername == userName)
{
// System.Diagnostics.Debug.WriteLine("Session is true......redirecting");
Session["IsLogin"] = true;
Response.Redirect("Page1.aspx");
}
else
{
Response.Write("Invalid Login");
}
}
在其他每个页面上:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["IsLogin"] == null)
{
Response.Redirect("Default.aspx");
}
在web.config文件中:
<appSettings>
<add key="UserName" value="aaa"/>
<add key="Password" value="bbb"/>
</appSettings>
它有10%的时间有效,我不明白为什么。当它无法正常工作时,输入密码和用户名字段的文本会在按钮单击后消失,这就是全部。我知道出于安全原因,这可以通过许多其他方式完成,但我想知道为什么这种情况在100%的时间都不起作用?
答案 0 :(得分:1)
如果有人对解决问题感兴趣:
我注意到登录只有在显示完整网址(包括页面)时才有效
http://mysite/Default.aspx
如果网址没有显示网页名称 ../ Default.aspx ,则上述登录不起作用。 解决方案是更改默认页面中的以下行:
<form id="form1" runat="server"">
到
<form id="form1" runat="server" action="Default.aspx">
感谢外部资源,Kunal,提示。