在ASP.NET中,常用的登录方法是使用ASP.NET身份验证(ASP.NET Authentication)。下面给出具体步骤:
...
此处的mode属性指定了身份验证的模式,这里选择了Forms模式,表示使用表单身份验证。loginUrl属性指定了未验证用户访问被保护资源时跳转的登录页面。timeout属性指定了身份验证的超时时间。
创建一个登录页面Login.aspx,包含输入用户名和密码的表单。用户在此页面通过表单提交输入的用户名和密码。
处理用户提交的登录请求,将其与存储的用户信息进行比对,判断用户名和密码是否正确。如果正确,则使用FormsAuthentication.SetAuthCookie()方法,为该用户创建一个名为".ASPXAUTH"的认证Cookie,并将其加入到响应中。
protected void btnLogin_Click(object sender, EventArgs e)
{
if (IsValidUser(txtUsername.Text, txtPassword.Text))
{
FormsAuthentication.SetAuthCookie(txtUsername.Text.Trim(), true);
Response.Redirect("~/Default.aspx");
}
else
{
lblMessage.Text = "Invalid username or password.";
}
}
在需要身份验证的页面或者控件中,使用User.Identity.IsAuthenticated属性获取当前用户是否已经通过身份验证。如果已经通过身份验证,则User.Identity.Name属性可以获取当前用户的用户名。
protected void Page_Load(object sender, EventArgs e)
{
if (!User.Identity.IsAuthenticated)
{
Response.Redirect("~/Account/Login.aspx");
}
else
{
lblMessage.Text = "Welcome, " + User.Identity.Name + "!";
}
}