首页 > 代码库 > MVC用户登陆验证及权限检查(Form认证)
MVC用户登陆验证及权限检查(Form认证)
1、配置Web.conf,使用Form认证方式
<system.web><authentication mode="None" /><compilation debug="true" targetFramework="4.6.1" /><httpRuntime targetFramework="4.6.1" /><authentication mode="Forms"><forms loginUrl="~/Login/Index" timeout="1440" /></authentication><httpModules><add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /></httpModules></system.web>
2、登陆验证成功后写入用户信息
//登陆
public ActionResult Index(LoginViewModel model)
{
if (db.User.Count(x => x.Account == strUser && x.Password == strPassword && x.Enable == true) > 0)
{
//用户验证成功
FormsAuthentication.SetAuthCookie(strUser, model.Remember);
return RedirectToAction("Index", "Admin", new { pagesize = 10 });
}
else
{
return View();
}
}
//退出登陆
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Login");
}
3、验证登陆及权限检查,需要让所有需要登陆的页面从BaseController派生
public class BaseController: Controller
{
/// <summary>
/// 重写基类在Action执行之前的操作,统一登陆验证及页面权限验证
/// </summary>
/// <param name="filterContext"></param>
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
//登陆验证处理
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
//未登陆
Response.Redirect("~/Login/Index");
}
else
{
//己登陆,Action级权限控制处理
string ControllerName = filterContext.RouteData.Values["controller"].ToString();
string ActionName = filterContext.RouteData.Values["action"].ToString();
//根据ControllerName 和 ActionName 进行权限检查
if()
{}
else
{
//己登陆,没有权限
Response.Redirect("~/Login/Index");
}
}
}
}
4、密码MD5加密
public static string GetMd5Hash(string input)
{
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
MVC用户登陆验证及权限检查(Form认证)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。