最简单的Forms认证

原创 Laughing  2017-08-01 23:37  阅读 81 次 评论 0 条

Forms认证说明

Forms认证是微软在.net中自带的一套认证方式,小编也是刚开始学习。学习本篇文章介绍的是最最基本的知识,大体上是说了一些基本概念的东西。其他深入的学习,等待后期自己学习了再补上。

Forms身份认证仅仅只是把信息存了cookie,而没有在服务端维护一个对应的session。所以我们就要防止各种欺骗、各种篡改等攻击手段。

View

  1. <div class="panel">  
  2.            <div class="panel-heading">  
  3.                Forms认证  
  4.            </div>  
  5.            <div class ="panel-body">  
  6.    @if (!string.IsNullOrEmpty(ViewBag.UserName))  
  7.    {  
  8.        <form action="/home/LoginOut1">  
  9.            <div class="panel panel-body">  
  10.                用户名:<span class="label label-success">@ViewBag.UserName</span>  
  11.                <input type="submit" class="btn btn-default" value="退出" />  
  12.            </div>  
  13.        </form>  
  14.    }  
  15.    else  
  16.    {  
  17.        <form action="/home/LoginIn1">  
  18.            <div class="panel panel-body">  
  19.                用户名:  
  20.                <input type="text" class="text-left" id="txtUserName" name="txtUserName"/>  
  21.                <input type="submit" class="btn btn-default" value="登录" />  
  22.            </div>  
  23.        </form>  
  24.    }  
  25.                </div>  
  26.            </div>  

Controller

  1. public ActionResult Index()  
  2.        {  
  3.            ViewBag.Title = "首页";  
  4.            ViewBag.UserName = Session["UserName"]?.ToString();  
  5.            if(string.IsNullOrEmpty(ViewBag.UserName)){  
  6.                ViewBag.UserName = User.Identity.Name;//获取cookie中存储的信息  
  7.                var cookie = Request.Cookies[FormsAuthentication.FormsCookieName];  
  8.                if (cookie != null)  
  9.                {  
  10.                    var ticket = FormsAuthentication.Decrypt(cookie.Value);  
  11.                    string role = ticket.Name;  
  12.                }  
  13.            }  
  14.            return View();  
  15.        }  
  16.   
  17.        public void LoginIn(string txtUserName)  
  18.        {  
  19.            var aa = Request["txtUserName"];  
  20.            if (!string.IsNullOrEmpty(txtUserName))  
  21.            {  
  22.                Session["UserName"] = txtUserName;  
  23.                Response.Redirect(Request.UrlReferrer.LocalPath);  
  24.            }  
  25.            else  
  26.            {  
  27.                Session["UserName"] = null;  
  28.            }  
  29.   
  30.        }  
  31.   
  32.        public void LoginOut()  
  33.        {  
  34.            Session["userName"] = null;  
  35.            Response.Redirect(Request.UrlReferrer.LocalPath);//重定向到原来页面  
  36.        }  
  37.   
  38.        public void LoginIn1(){  
  39.            string txtUserName = Request["txtUserName"]?.ToString();  
  40.            if(!string.IsNullOrEmpty(txtUserName)){  
  41.                FormsAuthentication.SetAuthCookie(txtUserName,true);  
  42.                Response.Redirect(Request.UrlReferrer.LocalPath);  
  43.            }else{  
  44.                FormsAuthentication.SignOut();  
  45.            }  
  46.        }  
  47.   
  48.        public void LoginOut1(){  
  49.            FormsAuthentication.SignOut();  
  50.            Response.Redirect(Request.UrlReferrer.LocalPath);  
  51.        }  

web.config配置

configuration节点下面,添加以下配置

  1. <system.web>  
  2.     <!--配置Forms认证-->  
  3.     <authentication mode="Forms"></authentication>  
  4.     </system.web>  
本文地址:https://www.lisen.me/one-of-the-simplest-forms-authentication.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情