`
jiasongmao
  • 浏览: 675940 次
  • 性别: 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;
        }

    }

 

分享到:
评论

相关推荐

    使用加密狗进行身份验证,加密狗验证失败怎么办,C#

    4. **身份验证逻辑**:在应用程序启动时,通过读取类与加密狗通信,尝试获取必要的认证信息。如果成功,应用程序继续运行;如果失败,通常会显示错误信息并阻止程序的执行。 5. **异常处理**:在编程过程中,要处理...

    C#编程通用类

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

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

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

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

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

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

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

    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类

    这些类通常会封装连接服务器、验证身份、构建邮件内容等复杂流程,简化邮件功能的开发。 【标签】"java"进一步确认了这是一个与Java编程语言相关的资源。Java是一种广泛使用的面向对象的编程语言,具有跨平台、健壮...

    注册通用验证器

    总的来说,“注册通用验证器”是一个全面的解决方案,涵盖了从前端到后端的验证过程,提供了用户输入的有效性和安全性检查。它简化了开发者的任务,提高了应用程序的安全性,同时也提升了用户体验。通过理解和使用...

    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在表单验证中...

    validator 通用JS表单验证类

    `validator`是一个通用的JavaScript表单验证类,它在网页开发中扮演着重要的角色,确保用户输入的数据符合预设的规则和格式。JavaScript和XML的结合使得`validator`类能够灵活地处理各种验证需求,同时提供了易于...

    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