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 | 默认主页的地址 |