mvc+三层 网站项目:用户登录(2)+页面权限

第一:新建 Areas文件夹,Login文件夹(controllers,Models,Views) 括号里面为文件夹下的文件夹

第二:新建控制器 HomeController

public ActionResult login()

{

return View();

}

第三:在Models下新建,Login类,RetInfo类

public class Paramlogin:RetInfo//引用RetInfo类
    {
        /// <summary>
        /// 用户名
        /// </summary>
        [DisplayName("用户名")]
        [Required(ErrorMessage = "必填")]
        public string UserName { get; set; }
        //123123123

/// <summary>
        /// 密码
        /// </summary>
        [DisplayName("密码")]
        [Required(ErrorMessage = "必填")]
        [StringLength(20, MinimumLength = 6, ErrorMessage = "密码长度必须在{2} 和{1}个字符")]
        [DataType(DataType.Password)]

第三:在Models下新建RetInfo类

public class RetInfo
    {
        /// <summary>
        /// 信息
        /// </summary>
        public string Messge { get; set; }
    }

第四:login视图

@model YL.Web.Areas.login.Models.Paramlogin   
</head>
<body class="gray-bg">
    <div class="middle-box text-center loginscreen  animated fadeInDown">
        <div>
            <div>
                <h1 class="logo-name">YL</h1>

</div>
            <h3>欢迎使用 YL</h3>
            @using (Html.BeginForm("login", null, FormMethod.Post))
            {
                <div class="form-group">
                    @Html.TextBoxFor(m => m.UserName, new { @class = "form-control", @placeholder = "请输入用户名" })
                    @Html.ValidationMessageFor(m => m.UserName)
                </div>
                <div class="form-group">
                    @Html.TextBoxFor(m => m.UserPwd, new { @class = "form-control", @placeholder = "密码", @type = "password" })
                    @Html.ValidationMessageFor(m => m.UserPwd)
                </div>
                 @Html.ValidationMessageFor(m => m.Messge)
                <button type="submit" class="btn btn-primary block full-width m-b">登 录</button>
                <p class="text-muted text-center">
                    <a href="login.html#"><small>忘记密码了?</small></a> |<a href="@Url.Action("register")">注册一个新账号</a>
                </p>
            }
        </div>
    </div>
</body>
</html>

第五:login控制器

#region 登录
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult login()
        {
         
            return View();
        }
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult login(Models.Paramlogin model)
        {
            if (ModelState.IsValid)
            {

var data = new BLL.ManagerBLL().Getlogin(model.UserName);//获取数据

if (data != null)
                {
                    if (model.UserPwd != data.UserPassWord)//判断密码是否相等
                    {
                        ModelState.AddModelError("Messge", "登录失败,账号或密码错误");
                        return View();
                    }
                    FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                        1, "",
                        DateTime.Now,
                        DateTime.Now.AddMinutes(30),
                        false,
                        "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["UserInfo"] = data;//保存登录信息

return RedirectToAction("MainFrame", "Home", new { Area = "Admin" });//登录后跳转后台界面
            }
            else
            {
                ModelState.AddModelError("Messge", "登录失败,账号或密码错误");
                return View();
            }

}
        #endregion

第五:新建base类

public class Base : Controller
    {
        //定义一个基类的UserInfo对象
        public Manger UserInfo { get; set; }

/// <summary>
        /// 重写基类在Action之前执行的方法
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            UserInfo = Session["UserInfo"] as Manger;

//检验用户是否已经登录,如果登录则不执行,否则则执行下面的跳转代码
            if (UserInfo == null)
            {
                Response.Redirect("/login");
            }
        }
    }

时间: 2024-10-28 12:01:55

mvc+三层 网站项目:用户登录(2)+页面权限的相关文章

mvc+三层 网站项目:用户注册

第一:前文,和登录一个控制器下 public ActionResult register(string UserName, string PassWord, string ConfirmPassword)        { if (!string.IsNullOrEmpty(UserName))//用户名不等于空            {                string sql = "SELECT COUNT(1) FROM Manager WHERE UserName='"

spring MVC使用Interceptor做用户登录判断

在任何一个项目中,我们必须要用到的就是用户登录,那么就少不了用户是否登录的判断,如果我们每一个请求都要去做一次判断,那么就会变得很麻烦,但我们复制粘贴的时候我们就要考虑我们的代码写的是不是有问题,是不是可以重构一下,这里借鉴一下项目中的这种模式: package interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import logic

samba共享目录无法访问的一般解决方案,非用户登录和读写权限问题

配smb,被第四点坑了很久,特此转载. 由于这5点都是比较普通的情况,不涉及用户登录和读写权限问题 1)关闭防火墙: #sevice iptables stop 2)修改 /etc/samba/smb.conf,具体配置网上有,我的如下:                 security = share     ---- 这个要用上,share表示安全最低级别,其次是user,最高是server            [共享目录名]path = /home/用户名/共享目录名;read only

从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程

用户登录与权限验证是网站不可缺少的一部分功能,asp.net MVC4框架内置了用于实现该功能的类库,只需要简单搭建即可完成该功能. 下面详细介绍该功能的完成方法,尾部有实例源码下载,希望可以给刚开始接触MVC的朋友做个参考.     第一步:给VS安装MVC4框架 VS2012自带MVC4框架,其他版本可以使用独立安装包进行安装,这里就不讨论了,本例使用VS2013创建,.NET4.0+MVC4 第二步:创建MVC4网站项目         选择文件-新建-项目,按下图示例创建一个空的MVC网

**15.app后端怎么设计用户登录方案(API权限安全)

在很多app中,都需要用户的登录操作.登录,就需要用到用户名和密码.为了安全起见,暴露明文密码的次数越少越好.怎么能最大程度避免泄露用户的密码呢?在登录后,app后端怎么去验证和维持用户的登录状态呢?在本文中,给出了一套用户登录的解决方案,以供大家参考. 1. 保证登录的安全性,最起码要使用https协议 避免信息的泄露,最简单的方案是所有涉及到安全性的api请求,都必须要使用https协议. HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

YbRapidSolution.Mvc判断不同用户登录不同页面

AccountController.cs using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text.RegularExpressions; using System.Web; using System.Web.Mvc; using System.Web.Script.Serialization; using System.Web.Security;

asp.net MVC C# LIgerUI实现用户登录功能login

1.创建一个项目,命名为MyLogin,选择空模板 2.创建一个控制器,命名为Home. 3.为控制器里的方法Index创建一个(主页)视图,命名为Index. 4.在视图Index里修改内容 5.添加一个方法命名为Login. 6.为方法Login添加一个视图命名为Login. 7.更改路由 8.为控制器添加一个有两个参数的方法Login1,并修改内容. 9.找到content文件夹及其下面的jquery和ligerui文件夹,如果没有,则需要从其他地方先添加content文件夹及其内容 10

刚新建好的动态网站项目,创建jsp页面就报错

拿到刚刚可以运行的Eclipse,就马上想敲码了,但一创建项目之后再创建jsp页面就报错= =! 报错的内容大概为缺乏对应的jar包. 我们常用Tomcat为中间体,而他本身是带有开发jsp网站的对应的jar包,检查在创建的时候是否有在Eclipse中配置Tomcat和新建项目的时候,有没把配置好的Tomcat设置选择,而我是没有选择在Eclipse中配置好的Tomcat. 首先第一步,选中 项目 –> Properties 在Java Build Path 下,点击 Add Library..

单点登录CAS使用记(三):实现自定义验证用户登录

问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验证用户的处理器. 1.QueryDatabaseAuthenticationHandler 2.SearchModeSearchDatabaseAuthenticationHandler 这两个处理类位于cas-server-support-jdbc这个扩展工程下. 第一步:改写用户验证处理器 打开