MVC 用户登陆验证

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/rickykay/article/details/51732985

MVC 用户登陆验证

配置 Web.config 文件

  • 主要配置登录页与默认主页
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <authentication mode="Forms">
            <forms name="save" loginUrl="loginUrl" defaultUrl="defaultUrl" protection="All"></forms>
            <sessionState mode="InProc" timeout="60"></sessionState>
        </authentication>
    </system.web>
</configuration>

验证类

  • 没有特殊要求可以直接使用系统提供的验证特性 AuthorizeAttribute 即可。

  • 也可以继承系统验证特性,定义自己的验证方式。

using System.Web;
using System.Web.Mvc;

namespace Test
{
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var r = base.AuthorizeCore(httpContxt);
            if(r)
            {
                return httpContext.Session != null && httpContext.Session["userInfo"] != null;
            }
            return false;
        }
    }
}

登陆类

  • 需要将登陆票据存入浏览器的 Cookie
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
    1,
    UserName,
    DateTime.Now,
    DateTime.Now.AddMinutes(60),
    true,
    "admins");
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);
  • 在 Session 里存入登陆信息
var userInfo = new UserInfo();

Session["userInfo"] = userInfo;

备注

- -
loginUrl 登录页的地址
defaultUrl 默认主页的地址
展开阅读全文

没有更多推荐了,返回首页