Heim  >  Artikel  >  Backend-Entwicklung  >  [Asp.Net MVC4] Beispiel für die Implementierung der Benutzeranmeldung

[Asp.Net MVC4] Beispiel für die Implementierung der Benutzeranmeldung

高洛峰
高洛峰Original
2016-12-24 13:35:161754Durchsuche

Vor kurzem werden wir ein Sina-ähnliches Weibo erstellen. Es kommt vor, dass ich kürzlich MVC lerne und die MVC-Technologie verwenden möchte, um dieses Projekt zu realisieren.

Da es sich um Weibo handelt, sollten Sie wissen, dass es eine Benutzeranmeldung geben muss, ohne darüber nachzudenken, aber diese unterscheidet sich von der regulären asp.NET-Anmeldung. Das Folgende sind die Forschungsergebnisse meines Nachmittags + eines Nachts~ ~~

Erstellen Sie zunächst die Datenbank und die Tabellen, was selbstverständlich ist.

Lassen Sie uns über die Hauptstruktur sprechen

Controller:

HomeController Dies ist der Controller der Homepage

LoginController Dies ist der Login-Controller

Klasse:

CDBTemplate.cs Dies ist die Klasse, die den Datenbankdaten entspricht und die Struktur der Datenbank beschreibt

//////////////////////////////////////////////////////////////////////////// /// Ich bin die Trennlinie \\\\\\\\\\\\\\\\\\\\\\\

Zunächst in der Return-Funktion des HomeControllers Controller

public ActionResult Index(){...}

Vorne hinzufügen:

[Authorize(Roles = "admins")]

Das ist es:

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

Diese Aussage bedeutet, hier eine Berechtigungsüberprüfung hinzuzufügen, um nur Benutzern mit der Benutzerrolle von Administratoren den Zugriff auf

und dann zu ermöglichen Gehen Sie zu web.config. Fügen Sie der Datei Folgendes hinzu:

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

Dies bedeutet, der gesamten Website eine Benutzerüberprüfung hinzuzufügen und auf die Anmeldeschnittstelle des Logins zu verweisen Controller

Eine Klasse in der Datei CDBTemplate.cs:

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; }
  }

Fügen Sie dann eine Ansicht Index.cshtml zur Standardrückgabefunktion von hinzu Fügen Sie auf der Seite den LoginController-Controller den folgenden Code hinzu:

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

Im obigen Code ist die Html.BeginForm("Login", "Login" , FormMethod.Post)-Methode Der erste Parameter bezeichnet den Namen der Methode, die den aufzurufenden Controller angibt. Der dritte Parameter bezeichnet die Methode, die zum Senden des Formulars an den Server verwendet werden soll Aus Sicherheitsgründen entscheiden Sie sich für die Übermittlung per Post.

Dann fügen Sie diese Methode im LoginController-Controller hinzu:

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

Okay, fertig~~~~

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.


Weitere Artikel zu [Asp.Net MVC4] Verifizierungs-Benutzer-Login-Implementierungsbeispielen finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn