票据身份验证及存入Cookie

一,C#票据身份验证一般用于登录验证存取用户信息以及判断用户是否登录

二、使用步骤

1.存入Cookie(信息存入Cookie之后基本就可以通过Cookie是否存在去判断用户是否登录过)

一般票据存取是在登录之后进行的操作,所以都是判断用户登录成功之后的操作。

首先配置web.config

<authentication mode="Forms">
      <forms name="Name" loginUrl="/Home/Login" cookieless="UseCookies" path="/" protection="All" timeout="30"/>
    </authentication>

2.在Global文件中获取Cookie值,解析Cookie值,拿到Cookie信息在全局中进行操作
在Global中注册Application_AuthenticateRequest事件函数,用于解析客户端发过来的Cookie数据
//1.通过sender获取HttpApplication
//2.拿到HTTP上下文
//3.根据FormsAuthentication.FormsCookieName从上下文请求中获取到Cookie
//4.解密cookie.Value获得票据
//5.判断票据的UserData,如果不为空则反序列化为实体
//6.将上下文中的User数据实例化,通过MyFormsPrincipal的构造函数 ticket,userData

 protected void Application_AuthenticateRequest(object sender,EventArgs e)
        {
            //通过sender获取HttpApplication
            HttpApplication app = sender as HttpApplication;
            //拿到一个HTTP上下文
            HttpContext httpContext = app.Context;
            //根据FormsAuthentication.FormsCookieName从下文中获取Cookie
            var cookie = httpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
            if (cookie != null)
            {
                if (!string.IsNullOrWhiteSpace(cookie.Value))
                {
                    var ticket = FormsAuthentication.Decrypt(cookie.Value);
                    if (!string.IsNullOrWhiteSpace(ticket.UserData))
                    {
                        LoginAdminDTO userData = ticket.UserData.ToObject<LoginAdminDTO>();
                        //将上下文中的User数据实例化,通过MyFormsPrincipal的构造函数 ticket,userData
                        Context.User = new MyFormsPrincipalDTO<LoginAdminDTO>(ticket, userData);
                    }
                }
            }
            // 页面实例化上下文User 获取Cookie内容(全局操作)
            var user = User as MyFormsPrincipalDTO<LoginAdminDTO>;

        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值