国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - [Asp.Net MVC4]驗證用戶登錄實現實例

[Asp.Net MVC4]驗證用戶登錄實現實例

2020-04-08 15:24Hsppl ASP.NET教程

這篇文章主要介紹了[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/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 超碰最新网址 | 亚洲网站在线 | 亚洲情网站 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产一区二区三区精品久久久 | 日韩av高清在线 | 亚洲精品视频区 | 国产精品久久久久久久久久久久冷 | 欧美一区视频 | 高清视频一区 | 成人av网站在线观看 | 国产精品亚洲精品 | 久久99久久99精品免观看粉嫩 | 99免费精品视频 | 日韩国产 | 日日夜夜精品视频 | 五月天婷婷色综合 | 亚洲欧美视频在线 | 亚洲精品永久免费 | 精品一区二区三区四区 | 久久精品一区二区 | 久久久无码精品亚洲日韩按摩 | 欧美老妇交乱视频 | 无码日韩精品一区二区免费 | 久色成人 | 亚洲视频1 | 日韩一区二区三区福利视频 | 国产精品久久久久aaaa九色 | 91视频免费观看 | 99精品视频免费 | 亚洲综合首页 | 国产日韩视频 | 爱色av| av黄色网| 大香伊蕉在人线视频777 | 91资源在线 | 玖玖玖影院 | 日韩在线观看成人 | 免费一区二区 | 久久国产精品视频 | 一区二区三区久久 |