• ASP.NET MVC4 Forms 登录验证


    Web.config配置:

    在<system.web>节下:

    <authentication mode="Forms">
      <forms loginUrl="~/Auth/Account/Login" timeout="2880" />
    </authentication>

    登录代码:

    /// <summary>
    /// 登录
    /// </summary>
    public static bool Login(string userName, string userPwd)
    {
        MySqlHelper dbHelper = new MySqlHelper();
        sys_user userModel = dbHelper.FindBySql<sys_user>(string.Format("select * from Sys_User where UserName='{0}'", userName));
        if (userModel != null)
        {
            if (userModel.userPwd.ToUpper() == MD5Helper.Encrypt(userPwd))
            {
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(userName, false, 120);
                string encryptedTicket = FormsAuthentication.Encrypt(ticket);
                HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                HttpContext.Current.Response.Cookies.Add(authCookie);
                return true;
            }
        }
        return false;
    }
    View Code

    退出登录代码:

    /// <summary>
    /// 退出登录
    /// </summary>
    public static void LoginOut()
    {
        FormsAuthentication.SignOut();
    }
    View Code

    判断用户是否登录:

    /// <summary>
    /// 判断是否登录
    /// </summary>
    public static bool IsLogin
    {
        get
        {
            return HttpContext.Current.User.Identity.IsAuthenticated;
        }
    }
    View Code

    获取登录用户:

    /// <summary>
    /// 获取登录用户
    /// </summary>
    public static sys_user LoginUser
    {
        get
        {
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                string cookieName = FormsAuthentication.FormsCookieName;
                HttpCookie authCookie = HttpContext.Current.Request.Cookies[cookieName];
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                string userName = authTicket.Name;
                MySqlHelper dbHelper = new MySqlHelper();
                return dbHelper.FindBySql<sys_user>(string.Format("select * from SYS_USER where UserName='{0}'", userName));
    
            }
            return null;
        }
    }
    View Code

    Action跳过登录验证使用AllowAnonymous:

    [AllowAnonymous]
    public ActionResult Login()
    {
        return View();
    }
    View Code

    需要登录验证的Controller使用Authorize,或者加在自己写的ControllerBase上:

    [Authorize]
    public class ControllerBase : Controller
    View Code
  • 相关阅读:
    abstract修饰方法总结
    linux tar.gz zip 解压缩 压缩命令
    html5视频播放
    Response.Redirect 打开新窗体的两种方法
    Gmail POP3设置
    加壳学习笔记(二)-汇编基础
    C#-异常处理:tyr,catch,finally ---ShinePans
    cocos2d jsb 打包 Android APK
    编写你自己的单点登录(SSO)服务
    一分钟制作U盘版BT3
  • 原文地址:https://www.cnblogs.com/s0611163/p/5868108.html
Copyright © 2020-2023  润新知