Maison  >  Article  >  développement back-end  >  [Asp.Net MVC4] Exemple d'implémentation de vérification de la connexion utilisateur

[Asp.Net MVC4] Exemple d'implémentation de vérification de la connexion utilisateur

高洛峰
高洛峰original
2016-12-24 13:35:161790parcourir

Récemment, nous allons créer un Weibo de type Sina. Il se trouve que j'apprends récemment MVC et que je souhaite utiliser la technologie MVC pour mettre en œuvre ce projet.

Puisqu'il s'agit de Weibo, vous devez savoir qu'il doit y avoir une connexion utilisateur sans y penser, mais elle est différente de la connexion asp.NET habituelle. Voici les résultats de mes recherches dans. un après-midi et une nuit~~ ~

Tout d'abord, construisez la base de données et les tables, ce qui va de soi.

Parlons de la structure principale

Contrôleur :

HomeController C'est le contrôleur de la page d'accueil

LoginController Il s'agit du contrôleur de connexion

Classe :

CDBTemplate.cs Il s'agit de la classe correspondant aux données de la base de données, qui décrit la structure de la base de données

//////////////////////////////////////// /// Je suis la ligne de démarcation \\\\\\\\\\\\\\\\\\\\\\\\

Tout d'abord, dans la fonction de retour du HomeController contrôleur

public ActionResult Index(){...}

Ajouter devant :

[Authorize(Roles = "admins")]

Ça y est :

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

Cette déclaration signifie ajouter une vérification d'autorisation ici pour autoriser uniquement les utilisateurs ayant le rôle d'utilisateur d'administrateur à accéder à

, puis allez sur web.config Ajouter au fichier :

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

Ceux-ci signifient ajouter la vérification de l'utilisateur à l'ensemble du site Web, pointant vers l'interface de connexion de la connexion contrôleur

Une classe dans le fichier 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; }
  }

Ajoutez ensuite une vue Index.cshtml à la fonction de retour par défaut de le contrôleur LoginController, dans la page Ajoutez le code suivant :

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

Dans le code ci-dessus, le Html.BeginForm("Login", "Login" , FormMethod.Post) Le premier paramètre signifie le nom de la méthode qui spécifie le contrôleur à appeler. Le deuxième paramètre signifie le nom du contrôleur. Le troisième paramètre signifie la méthode à utiliser pour soumettre le formulaire au serveur. nous sommes pour la sécurité, choisissez de soumettre par voie postale.

Ensuite, ajoutez cette méthode dans le contrôleur LoginController :

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

D'accord, c'est fait~~~~

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.


Pour plus d'exemples d'implémentation de connexion utilisateur de vérification [Asp.Net MVC4], veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn