zoukankan      html  css  js  c++  java
  • ASP.NET MVC3 登陆练习

    首先建立一个MVC的项目,空的就行。

    再创建一个Model模型。在Models目录下面。

    public class User
    {
      //用户信息
    public string LoginName { get; set; } public string Password { get; set; } public string UserName { get; set; } }
        //用户登陆
        public class UserManager
        {
            public static bool Validate(string loginName, string password)
            {
                return String.Equals(loginName, "zhang", StringComparison.Ordinal)
                    && String.Equals(password, "password", StringComparison.Ordinal);
            }
    
            public static User GetUserByLoginName(string loginName)
            {
                return new User() { LoginName = "zhang", Password = "password", UserName = "张三" };
            }
        }

    好了,模型层搞定了,然后就是Controller。在Controller目录下创建一个AccoutController的控制器,Index是默认方法,我们再创建一个Login方法,用户接受用户登陆时提交的请求。

            public ActionResult Login()
            {
                //得到用户信息
                string loginName = Request.Form["loginName"];
                string password = Request.Form["password"];
    
                //验证
                if (Models.UserManager.Validate(loginName, password))
                {
                    //保存
                    Session["CurrentUser"] = UserManager.GetUserByLoginName(loginName);
                    //登陆成功
                    return RedirectToAction("Success");
                }
                //登陆失败,记录用户名,用户不用重新输入
                ViewData["LoginName"] = loginName;
                //错误提示
                ViewData["ReturnMessage"] = "用户名或者密码错误";
                //跳转登陆页面
                return View("Index");
            }

    Controller完成了,下面是View了

    我们使用Index视图作为登陆页面,一个Success页面作为登陆成功的页面。

    这是Index页面。

     1 @model MvcApplication6.Models.User
     2 @{
     3     ViewBag.Title = "Index";
     4 }
     5 <h2>
     6     Index</h2>
     7 @using (Html.BeginForm("Login", "Account"))
     8 {
     9     <div>
    10         @Html.LabelFor(m => m.UserName)
    11         @Html.TextBox("loginName", ViewData["loginName"])
    12         @Html.LabelFor(m => m.Password)
    13         @Html.Password("password")
    14         <div>
    15             <input type="submit" value="登陆" />
    16         </div>
    17         <div>
    18             @ViewData["ReturnMessage"]
    19         </div>
    20     </div>
    21 }

    第7行,Html.BeginForm("Login", "Account"),表明表单Form是提交到AccountController的Login方法哈,也就是上面的方法。

    第11行,ViewData["loginName"]参数设置文本框的默认值,如果用户输入了错误的密码,返回的时候,可以自动填上用户名。

    再看一下Success视图的代码

    @{
        ViewBag.Title = "Success";
    }
    <h2>
        Success</h2>
    <div>
        @{
            MvcApplication6.Models.User user = Session["CurrentUser"] as MvcApplication6.Models.User; 
        }
        您好,欢迎您:@user.UserName
        您的登陆名是:@user.LoginName
    </div>

    登陆成功以后,用户信息保存在Session中,表明当前用户已经登陆,在这里取出用户信息,并显示出来。

    运行过程,在地址栏输入localhost:xxxx/Account,跳转到登陆页面

    输入用户名和密码

    跳转到Success视图

  • 相关阅读:
    bellman-ford -------解决负权边
    为macbook做准备---linux命令
    dijkstra算法---通过边实现松弛
    只有五行的算法--floyd-warshall
    《将博客搬至CSDN》
    Ubuntu x64安装Android studio 全部步骤和问题解决
    无法添加pptp
    Android 随时随地的退出程序
    div中class和id有什么区别?
    CSS学习笔记
  • 原文地址:https://www.cnblogs.com/qingkongwanli/p/2776153.html
Copyright © 2011-2022 走看看