zoukankan      html  css  js  c++  java
  • 使用Forms进行身份验证(Asp.net)



    1、背景
         以往项目登陆后的用户信息都是存放在session中,但session有一个问题就是读取的时候需要先实例化所在类,在调用对象()如果用static修饰,则可能到时多次登陆sessionid都一样,存在安全问题。目前的项目使用FormsAuthentication方式存储登陆用户信息,使用的是Cookie存储方式。

    2、代码介绍
          2. 1  public class UserInfo定义当前登陆用户需要存储的基本信息
       2.2 登陆成功后将用户信息对象UserInfo序列化为json字符串存储
            (系统会自动关联当前用户到HttpContext.Current.User.Identity.Name)
               var curUser = new UserInfo();
              string name = JsonConvert.SerializeObject(curUser);
                FormsAuthentication.SetAuthCookie(name, false);
       2.3 登陆用户信息的实体对象(读取HttpContext.Current.User.Identity.Name  Json字符串并反序列化为UserInfo对象
      public class Runtime      
      {
            /// <summary>
        /// 当前登录用户相关信息
        /// </summary>
        public static UserInfo CurrentUser
        {
            get
            {
                if (HttpContext.Current.Request.IsAuthenticated)
                {
                    SysUser longinUser = JsonConvert.DeserializeObject<UserInfo>(HttpContext.Current.User.Identity.Name);
                    if (string.IsNullOrEmpty(longinUser.LoginName))
                    {
                        return null;
                    }
                    else
                    {
                        return longinUser;
                    }
                }
            }
        }
    }
            2.4 退出登陆
                FormsAuthentication.SignOut();

    3、优点和缺点
           优点:使用static方法,读取方便;使用Forms验证,安全性有一定保障

            缺点:
            1、保存的基本信息不可过多,否则调用
    FormsAuthentication.SetAuthCookie方法时会抛异常(“无法加密身份验证票”)
            2、Forms使用Cookie存放数据,存在一定的安全隐患





















  • 相关阅读:
    [NOI2014]动物园
    [NOI2014]起床困难综合症
    bzoj2688 Green Hackenbush
    luogu P2575 高手过招
    [NOI2015]荷马史诗
    win10系统U盘读取不了怎么解决 三种方法快速解决&quot;文件或目录损坏且无法读取& 发布时间:2020-06-05 09:19:46 作者:佚名 我要评论
    在 Linux 中,最直观、最可见的部分就是 文件系统(file system)
    GB 18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充
    docker 分层 隔离
    DNS和BIND
  • 原文地址:https://www.cnblogs.com/gossip/p/3545709.html
Copyright © 2011-2022 走看看