gpt4 book ai didi

[Asp.Net MVC4]验证用户登录实现实例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章[Asp.Net MVC4]验证用户登录实现实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

最近我们要做一个仿sina的微博,碰巧的是我最近在学习mvc,就想用mvc技术实现这个项目.

既然是微博,那不用想也应该知道肯定要有用户登陆,但是和常规的asp.NET登陆又不一样,以下是我一下午+一晚上的研究成果~~~ 。

首先,建好数据库以及表,这就不用说了吧.

下面说一下主要的结构 。

控制器:

HomeController 这是主页的控制器 。

LoginController 这是登陆的控制器 。

类:

CDBTemplate.cs 这是数据库数据对应的类,里边描述的是数据库的结构 。

////////////////////////////////////////////我是分割线\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 。

首先在HomeController 控制器的返回函数 。

?
1
public ActionResult Index(){...}

前面加上:

?
1
[Authorize(Roles = "admins" )]

就是这样:

?
1
2
3
4
5
[Authorize(Roles = "admins" )]
public ActionResult Index()
{
   ...
}

这条语句的意思是在这加上一个权限验证,只允许用户角色是admins的用户访问 。

然后再web.config文件里添加:

?
1
2
3
< authentication mode = "Forms" >
    < forms loginUrl = "~/Login" timeout = "2880" />
</ authentication >

这些的意思是给整个网站增加用户验证,指向的登陆界面是login这个控制器 。

CDBTemplate.cs文件里的一个类:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class LogOnModel
   {
     [Required]
     [Display(Name = "用户名" )]
     public string UserName { get ; set ; }
 
 
     [Required]
     [DataType(DataType.Password)]
     [Display(Name = "密码" )]
     public string Password { get ; set ; }
 
 
     [Display(Name = "下次自动登陆" )]
     public bool RememberMe { get ; set ; }
   }

然后为LoginController 控制器的默认返回函数增加一个视图Index.cshtml,在页面里面加上下面的代码:

?
1
2
3
4
5
6
7
8
9
10
11
@model Weibo.Models.LogOnModel //LogOnModel 是CDBTemplate.cs文件里的一个类
@ using (Html.BeginForm( "Login" , "Login" ,FormMethod.Post)) {
   @Html.TextBoxFor(m => m.UserName)
         @Html.ValidationMessageFor(m => m.UserName, "请输入用户名!" , new {style= "color: #f00" })
@Html.PasswordFor(m => m.Password)
         @Html.ValidationMessageFor(m => m.Password, "请输入密码!" , new {style= "color: #f00" })
@Html.CheckBoxFor(m => m.RememberMe)
         @Html.LabelFor(m => m.RememberMe)
@Html.ActionLink( "忘记密码" , "forgotpwd" , null , new {@ class = "rt" ,target= "_blank" })
<input type= "submit" value= "登陆微博" />
}

在上面的代码里Html.BeginForm("Login","Login",FormMethod.Post)方法的第一个参数的意思是指定要调用的控制器的方法的名字,第二个参数的意思是控制器的名字,第三个参数的意思是用什么方法把表单提交给服务器,这里我们为了安全,选择用post方式提交.

然后在LoginController 控制器中增加这么一个方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[HttpPost, ActionName( "Login" )]
     public void Login(FormCollection collection)
     {
       object obj = SqlHelper.ExecuteScalar( "select UserId from CDBUsers where UserName=@uname and Password=@pwd" ,
          new SqlParameter( "@uname" , collection[0]),
          new SqlParameter( "@pwd" , Weibo.Models.Myencrypt.myencrypt(collection[1])));
 
 
       if (obj != null )
       {
         FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
           1,
           collection[0],
           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);
       }
 
 
       Response.Redirect( "~/" );
     }

好了,搞定了~~~~ 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://blog.csdn.net/hsppl/article/details/7396526/ 。

最后此篇关于[Asp.Net MVC4]验证用户登录实现实例的文章就讲到这里了,如果你想了解更多关于[Asp.Net MVC4]验证用户登录实现实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com