1:Model层代码:
namespace MvcApplication5.Models
{
public class UserInfo
{
/* 用户信息实体 */
public string LoginName { get; set; } //登录名
public string Password { get; set; } //密码
public string Username { get; set; } //姓名
}
public class UserManager //这边就是相当我们普通三层的BLL 跟DAL
{
/* 用户业务实体 */
/// <summary>
/// 验证登录名和密码
/// </summary>
public static bool Validate(string loginName, string password)
{
//这里模拟一下用户验证,实际项目中需要读取数据库用户信息进行验证
return "zhang" == loginName && "123" == password;
}
/// <summary>
/// 根据登录名获取用户信息
/// </summary>
public static UserInfo GetUserByLoginName(string loginName)
{
//这里模拟一下数据库查询
return new UserInfo()
{
LoginName = "zhang",
Password = "123",
Username = "张学良"
};
}
}
}
2:控制器的代码:
public ActionResult Login()
{
string loginName = Request.Form["loginName"];
string password = Request.Form["password"];
if (Models.UserManager.Validate(loginName, password))
{
Session["CurrentUser"] = Models.UserManager.GetUserByLoginName(loginName); //调用的方法
return Redirect("/Account/Success");
}
ViewData["LoginName"] = loginName; //这边这样写是为的在输入错误时可以把用户名保存下来省得再输入用户名
ViewData["ReturnMessage"] = "用户名或者密码不正确";
return View("Index");
}
3:视图代码:
登录代码:
<table border="0" cellpadding="0" cellspacing="0" width="1000" height="768">
<tr>
<td align="center" valign="middle" class="td">
<br />
<% using (Html.BeginForm("Login", "Account")) { %>
<table cellpadding="5" border="0" cellspacing="5" width="260">
<tr>
<td>用户名:</td>
<td><%= Html.TextBox("loginName", ViewData["LoginName"])%></td>
</tr>
<tr>
<td>密 码:</td>
<td><%= Html.Password("password")%></td>
</tr>
<tr>
<td> </td>
<td><input value="Submit" type="submit" /><br /> <br /> <%= ViewData["ReturnMessage"]%>
</td>
</tr>
</table>
<% }//Html.EndForm(); %>
</td>
</tr>
</table>
成功后的代码:
<div>
<% MvcApplication5.Models.UserInfo currentUser =
Session["CurrentUser"] as MvcApplication5.Models.UserInfo; %>
你好,欢迎你:<%= currentUser.Username %>
你的登录名称是:<%= currentUser.LoginName %>
</div>