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

高洛峰
Libérer: 2016-12-24 13:35:16
original
1789 Les gens l'ont consulté

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(){...}
Copier après la connexion

Ajouter devant :

[Authorize(Roles = "admins")]
Copier après la connexion

Ça y est :

[Authorize(Roles = "admins")]
public ActionResult Index()
{
  ...
}
Copier après la connexion

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>
Copier après la connexion

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; }
  }
Copier après la connexion

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="登陆微博" />
}
Copier après la connexion

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("~/");
    }
Copier après la connexion

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 !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal