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视图

原文地址:https://www.cnblogs.com/qingkongwanli/p/2776153.html