FormsAuthentication.Authenticate()方法延长保存时间的方法

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 = "用户名或密码错。";
                }
            }
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值