using System;
using System.Web;
using System.Web.Security;
using Web.Code;
namespace Web.Login
{
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(UserName.Text + "<br>" + PassWord.Text);
Label1.Text = string.Empty;
if (UserName.Text.Length * PassWord.Text.Length == 0)
{
Label1.Visible = true;
Label1.Text = "用户名和密码必须都填写。";
}
else
{
if (Membership.ValidateUser(UserName.Text, PassWord.Text))
{
MembershipUser user = Membership.GetUser(UserName.Text); // 读取 user 的信息,目的是为了获取 UserID
if (RememberMe.Checked)
{
// 生成一个持久的身份验证票证
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, UserName.Text, DateTime.Now, DateTime.Now.AddYears(10), true, user.ProviderUserKey.ToString());
// 加密身份验证票证
string encTicket = FormsAuthentication.Encrypt(ticket);
// 将身份验证票证添加到身份验证 Cookies
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
// 设置身份验证票证的过期时间为10年
Response.Cookies[FormsAuthentication.FormsCookieName].Expires = DateTime.Now.AddYears(10);
// 转向到原始页面
Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, true));
}
else
{
// 生成一个非持久的身份验证票证
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, UserName.Text, DateTime.Now, DateTime.Now.AddMinutes(20), false, user.ProviderUserKey.ToString());
// 加密身份验证票证
string encTicket = FormsAuthentication.Encrypt(ticket);
// 将身份验证票证添加到身份验证 Cookies
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
// 转向到原始页面
Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, true));
}
}
else
{
Label1.Visible = true;
Label1.Text = "用户名或密码错。";
}
}
}
}
}
FormsAuthentication.Authenticate()方法延长保存时间的方法
最新推荐文章于 2020-06-16 14:30:27 发布