对登录模块的理解


一个简单的身份认证登录模块(MVC)的工作流程是:


1. 用默认路径访问网站 ,如 :http://localhost:3245/

2. 在路由文件 global.ascx里 根据 defalut 路由 访问 控制器


routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "Account", action = "Index", id = UrlParameter.Optional } // 参数默认值
            );

3.  由控制器 AccountController.cs中的代码

     public ActionResult Index()

        {
            return View();
        } 

访问Views文件夹下的同名文件 index.aspx

   

 <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="登录" type="submit" /><br /> <br />  
                        </td>
                    </tr>
                </table>


其中   <% using (Html.BeginForm("Login", "Account"))    

 将在客户端产生一个类似<form action="/account/login" 
method="post"></form>标签

在点击submit按钮后 转到控制器  AccountController.cs中的代码 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");


   if (Models.UserManager.Validate(loginName, password)) 转到Model文件夹下的

userinfo.cs里的  validate方法来验证登录信息字典的合法性。 这里还可以访问数据库。


  public class UserManager
    {
        /* 用户业务实体 */


        /// <summary>
        /// 验证登录名和密码
        /// </summary>
        public static bool Validate(string loginName, string password)
        {
            //这里模拟一下用户验证,实际项目中需要读取数据库用户信息进行验证
            return "zhang" == loginName && "123" == password;
        }


如果成功 ,redirect 到 新的页面


流程是    用户发起访问 ---路由表 -----控制器 ---视图View--控制器---模型Model---数据库或视图。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值