在 ASP.NET 中开发一个简单的登录功能时,我陷入了一个奇怪的场景。有两个页面,LoginPage.aspx
和Default.aspx
。用户在登录页面上提供有效凭据后,他/她将被重定向到默认页面。我想在默认页面顶部显示用户登录信息,为此我添加了以下 HTML:
<form id="Form1" runat="server">
<div id="demo_header" runat="server">
<asp:Label ID="loggedinUsername" ForeColor="Black" runat="server"></asp:Label>
<asp:LinkButton ID="logout" runat="server" Text="Logout!" ForeColor="Black" OnClick="Logout"></asp:LinkButton>
...
</div>
</form>
在 Default.aspx.cs 中:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["LoggedinUser"] != null)
{
loggedinUsername.Text = "Welcome " + Session["LoggedinUser"].ToString() + " ";
logout.Visible = true;
demo_header.Visible = false;
}
else
{
logout.Visible = false;
demo_header.Visible = true;
}
}
下面是当用户按下 LoginPage.aspx 上的登录按钮时执行的代码:
protected void LoginButton_Click(object sender, EventArgs e)
{
if (LoginEmail.ToString() == string.Empty || LoginPassword.ToString() == string.Empty)
{
Session["RedirectReaasonFlag"] = "Credentials null";
login_error_msg.Text = "Please Provide Email/Password!";
}
else
{
UserStandard User = new UserStandard();
User._Email = LoginEmail.Text;
User._password = LoginPassword.Text;
Dictionary<int, string> LoggedinUserData = User.AuthenticateUser(User);
if (LoggedinUserData.Count == 1)
{
Session["LoggedinUserID"] = LoggedinUserData.ElementAt(0).Key;
Session["LoggedinUser"] = LoggedinUserData.ElementAt(0).Value;
Response.Redirect("Default.aspx");
}
else
Session["RedirectReaasonFlag"]= "Invalid Login Attempt";
}
}
但不知何故,当用户在默认页面上被重定向时,它的名称和注销超链接不会显示。这是一个非常简单的任务,这种情况正在吞噬我的大脑。请帮帮我。
谢谢。