`
jiasongmao
  • 浏览: 666891 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

通用身份验证类:AuthenticationCookie

    博客分类:
  • .NET
 
阅读更多
/// <summary>
    /// Cookie身份验证辅助类
    /// </summary>
    public class AuthenticationCookie
    {

        /// <summary>
        /// 判断用户是否登录成功并授权
        /// </summary>
        public static bool IsAuthenticated
        {
            get
            {
                try
                {
                    return HttpContext.Current.User.Identity.IsAuthenticated;
                }
                catch (Exception ex)
                {
                    throw new Exception("在非Http访问环境下无法访问用户信息");
                }
            }
        }

        /// <summary>
        /// 授权操作
        /// <remarks>
        /// 在验证登录的用户合法后调用该方法
        /// </remarks>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="userName">用户名,必须使用标识用户唯一的字段</param>
        /// <param name="user"></param>
        /// <param name="rememberMe"></param>
        public static void SetAuthentication<T>(string userName, T user, bool rememberMe = false)
        {
            string userData = SerializerHelper.JsonSerialize(user);
            //创建身份认证票据
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddDays(7), rememberMe, userData);
            //对票据进行加密处理
            string ticketEncString = FormsAuthentication.Encrypt(ticket);

            HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncString));
        }

        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static T GetUser<T>()
        {
            string encCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value;
            FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(encCookie);
            string userData = ticket.UserData;
            T user = SerializerHelper.JsonDeserialize<T>(userData);
            return user;
        }

    }

 

分享到:
评论

相关推荐

    SMTP客户端未通过身份验证等多种错误解决方案分享

    在使用SMTP客户端发送邮件时,可能会遇到多种错误,特别是涉及到安全性和身份验证的问题。以下是一些常见的错误及其解决方案: 错误一:SMTP 服务器要求安全连接或客户端未通过身份验证(5.7.1 Client was not ...

    C#编程通用类

    本篇文章将深入探讨标题和描述中提到的四个主要通用类:SQLHelp(数据库操作)、IOHelp(文件处理)、类型转换类和数据验证类。 1. SQLHelp 类: SQLHelp 类是用于简化与数据库交互的工具。它通常包含了一系列静态...

    基于Java的两个通用安全模块的设计与实现

    设计和实现通用安全模块通常涉及多个方面,包括数据加密、身份验证、访问控制、安全通信等。下面为讨论两个基于Java的通用安全模块的设计和实现示例:数据加密模块和用户身份验证模块。 1. 数据加密模块: 数据加密...

    通用指纹身份验证系统v4.8官方免费安装版

    通用指纹身份验证系统是一款只要一台普通的个人电脑,配用本系统和指纹采集仪即可的身份验证软件。在预先登记人员身份信息和指纹信息后,通过按压手指来确认其身份,并以自定义的任务方式,记录人员的各种活动状态。...

    基于Java的两个通用安全模块的设计与实现的毕业设计,分为两个模块:加密模块和身份验证模块

    该毕业设计将分为两个模块:加密模块和身份验证模块。 ## 加密模块 加密模块是用于加密和解密数据的模块。该模块将实现常见的加密算法,如AES和RSA。它还将包括生成和管理密钥的功能。该加密模块将被用于保护数据...

    http通用工具类

    3. **请求头设置**:允许设置各种HTTP请求头,如Content-Type(定义请求体的数据类型)、Authorization(用于身份验证)等。 4. **参数处理**:支持添加查询参数、请求体参数或作为URL路径的一部分的参数。可以处理...

    asp.net通用类

    2. **验证类**:ASP.NET通用类中的验证类用于检查用户输入的数据,确保它们符合预设的规则和格式。这可以包括电子邮件地址验证、密码复杂度验证、数字范围验证等。此类还可以配合ASP.NET验证控件,提供客户端和...

    LTP通用类、数据库访问类源码

    LTP.Common、LTP.DBUtility、LTP.PageControl通用类库源码 Common:通用类库源码 DBUtility:数据访问基础类库 LtpPageControl: 分页控件源码

    validate 通用Ajax无刷新表单验证类

    "validate 通用Ajax无刷新表单验证类"就是针对这一需求设计的,旨在提供一个高效、便捷的解决方案,使得在用户填写表单时能够实时进行数据验证,无需等待页面刷新,极大地提高了用户体验。 Ajax(Asynchronous ...

    javascript,小程序,uni-app通用的验证类

    javascript,小程序,uni-app通用的验证类,内置常用的验证方法。。//使用用方法 /* *valit_rule验证规则 *value,验证数据form *true ,一次性全部检测完 / //var vali_result = validate.check(this.data.valit_rule,...

    C#通用数据库帮助类(MyDbHelper.cs)无需修改直接使用

    本篇将详细解析标题为"C#通用数据库帮助类(MyDbHelper.cs)无需修改直接使用"的知识点,以及相关文件内容。 首先,`MyDbHelper.cs`是一个C#源代码文件,通常它会包含一个静态类或实例类,用于封装数据库操作的通用...

    java通用权限管理系统:作为配置中心,管理后台系统的菜单、功能、用户、角色等,并提供DUBBO接口.zip

    - 访问控制:如JWT(JSON Web Tokens)进行身份验证,防止未授权访问。 - 加密技术:敏感信息如密码存储时通常进行加密处理,保障信息安全。 8. **日志审计**: - 操作记录:系统会记录用户的操作行为,便于追踪...

    .net 开发常用类 通用类集

    这些类可能扩展了.NET BCL的功能,或者提供了特定场景下的便利方法,比如日志记录、缓存管理、数据验证等。为了提高代码的可维护性和可读性,开发者通常会将具有相似功能的类组织在一起,形成自己的类库。 总的来说...

    配置SQL_Server的身份验证方式

    ### 配置SQL Server的身份验证方式 #### 一、引言 在企业级数据库管理中,SQL Server作为一款广泛使用的数据库管理系统,其安全性至关重要。为了确保数据的安全与完整,SQL Server提供了多种身份验证机制,包括...

    通用表单验证Jquery插件.rar

    通用表单验证Jquery插件是为了提高用户体验和数据安全而设计的。Jquery是一种强大的JavaScript库,它简化了JavaScript的DOM操作,事件处理,动画效果,以及Ajax交互。在这个场景中,我们关注的是Jquery在表单验证中...

    C#通用权限

    2. 主体与身份:主体(Principal)代表当前执行代码的用户身份,而身份(Identity)则是验证用户信息的对象。`Thread.CurrentPrincipal`属性可获取当前线程的主体对象,用于权限检查。 二、菜单权限 菜单权限是用户...

    universal-auth:在服务器或客户端上呈现时要使用的通用身份验证

    通用身份验证在服务器或客户端上呈现时要使用的通用身份验证。目标提供一个简单,一致且动态的身份验证库,任何前端框架都可以使用该库在服务器或客户端上进行呈现。安装$ npm install --save universal-auth例子var...

    通用菜单类:帮助菜单格式化和用户输入验证

    通用菜单类 帮助菜单格式化和用户输入验证 输入:选项的std :: string向量输出:有效的选项整数将带有选项号的格式化选项打印到终端上带有辅助错误信息的用户输入数据验证可以与任何大小的std :: string选项向量一起...

    js通用表单验证代码

    本文将深入探讨“js通用表单验证代码”这一主题,以及如何利用JavaScript进行有效的表单验证。 首先,我们要理解JavaScript在表单验证中的角色。JavaScript是一种客户端脚本语言,它可以在用户的浏览器上运行,无需...

Global site tag (gtag.js) - Google Analytics