Home > Backend Development > C#.Net Tutorial > [Asp.Net MVC4] Verify user login implementation example

[Asp.Net MVC4] Verify user login implementation example

高洛峰
Release: 2016-12-24 13:35:16
Original
1811 people have browsed it

Recently we are going to make a Sina-like Weibo. It happens that I am learning MVC recently and want to use MVC technology to realize this project.

Since it is Weibo, you should know that there must be a user login, but it is different from the regular asp.NET login. The following is the research results of my afternoon + one night~~~

First of all , build the database and tables, it goes without saying.

Let’s talk about the main structure

Controller:

HomeController This is the controller of the homepage

LoginController This is the login controller

Class:

CDBTemplate.cs This is the database data The corresponding class describes the structure of the database

////////////////////////////////////// ////////I am the dividing line\\\\\\\\\\\\\\\\\\\\\\\\\\

First of all, in the return function of the HomeController controller

public ActionResult Index(){...}
Copy after login

Add in front:

[Authorize(Roles = "admins")]
Copy after login

That’s it:

[Authorize(Roles = "admins")]
public ActionResult Index()
{
  ...
}
Copy after login

This statement means to add a permission verification here, allowing only users with the user role admins to access

Then add in the web.config file:

<authentication mode="Forms">
   <forms loginUrl="~/Login" timeout="2880" />
</authentication>
Copy after login

These mean to add user verification to the entire website. The login interface pointed to is the login controller

A class in the CDBTemplate.cs file:

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; }
  }
Copy after login

Then add a view Index.cshtml to the default return function of the LoginController controller, and add the following code to the page:

@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="登陆微博" />
}
Copy after login

In the above code Html.BeginForm("Login", The first parameter of the "Login", FormMethod.Post) method means the name of the method that specifies the controller to be called, the second parameter means the name of the controller, and the third parameter means what method to use. Submit the form to the server. Here we choose to submit it in post mode for safety.

Then add such a method to the LoginController controller:

[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("~/");
    }
Copy after login

Okay, done~~~~

The above is the entire content of this article, I hope it will be helpful to everyone’s learning, and I hope Please support PHP Chinese website.


For more [Asp.Net MVC4] verification user login implementation examples related articles, please pay attention to the PHP Chinese website!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template