web-dev-qa-db-fra.com

Appartenance personnalisée et fournisseur de rôle dans ASP.NET MVC 4

Je crée une application Web ASP.NET MVC 4. J'ai cherché sur Google à propos d'un abonnement personnalisé, mais je ne pouvais pas trouver de bonnes ressources ni de conférences vidéo.

La plupart d'entre eux sont des liens obsolètes ou morts. Pourriez-vous suggérer des ressources sur la façon de commencer à écrire un fournisseur d'adhésion et de rôle?.

18
Mukesh Sharma

La compréhension de l’adhésion et des rôles a également été assez difficile pour moi, car vous avez dit qu’il n’y avait pas beaucoup de contenu fiable et détaillé que vous trouverez sur le Web. J'ai essayé de regarder plusieurs vidéos pour comprendre sur ce sujet, mais ce n'était pas clair. Mais ensuite, deux articles d'un site Web appelé Code Project sont venus à la rescousse. Je partage ces liens où vous pouvez voir un guide étape par étape sur la personnalisation de l'adhésion

Lien 1
Le lien 1 vous aidera à remplacer un courrier électronique par un nom d'utilisateur pour l'authentification de connexion. Il s'agit de l'une des personnalisations les plus courantes dont les développeurs ont besoin dans le module d'identité fourni par Microsoft. 

Link2

Le deuxième article vous aidera à comprendre comment ajouter et associer des rôles à l'utilisateur créé et comment limiter l'accès de la page d'inscription à un administrateur uniquement. De cette façon, à l’aide de ces deux articles, j’espère que vous comprendrez les bases de l’authentification et de l’autorisation. 

1
Abdul Hannan

Je suggère d’utiliser ASP.Net Identity au lieu d’anciens membres .ASP.Net Identity est un moyen plus souple et plus efficace que les anciens membres. Il prend également en charge l’authentification basée sur les rôles à l’aide de filtres d’action et vous pouvez implémenter vos propres fournisseurs personnalisés (tels que rôle et fournisseurs d'utilisateurs).

voir les liens ci-dessous

https://weblog.west-wind.com/posts/2015/Apr/29/Adding-minimal-OWIN-Identity-Authentication-to-an-Existing-ASPNET-MVC-Application

http://www.c-sharpcorner.com/article/create-identity-in-simple-ways-using-asp-net-mvc-5/

1
Code_Worm
http://logcorner.com/how-to-configure-custom-membership-and-role-provider-using-asp-net-mvc4/

**for creating a CustomerMemberShipClass** your class must implement System.Web.Security.MembershipProvider abstarct class. and you override the method ValidateUser()
in this ValidateUser() you have to write your own logic based on which you want authenticate user and return true or false according to it.

Sample ValidateUser method 
  public override bool ValidateUser(string username, string password)
        {
           int count=db.GetAll().Where(x => x.UserEmail == username && x.password == password).Count();
           if (count != 0)
               return true;
           else
               return false;
        }

later in web.config file you have add the fallowing under <sytem.web> element


<membership defaultProvider="MyMembershipProvider">
      <providers>
        <clear/>
        <add name="MyMembershipProvider" type="Write your class name that is implementing membershipproviderclas"/>
      </providers>
    </membership>

after doing this you can validate user using **MemberShip.Validate(Username,password)** which returns true or false based on ur code in ValidateUser() in CustomMemberShipProvider class and this will also set **[Authorize] attribute**

**for creating a CustomRoleProviderClass** your class must inherit System.Web.Secuirty.RoleProvider and override the appropriate method to get the roles for the user

SAmple method for getting roles for user


 public override string[] GetRolesForUser(string username)
        {
            string[] str={db.GetAll().Where(x=>x.UserEmail==username).FirstOrDefault().Role};
            return str;
        }

after this you must add the fallowing in web.config file in <system.web> element

<roleManager enabled="true" defaultProvider="MyRoleProvider">
      <providers>
        <clear/>
        <add name="MyRoleProvider" type="BLL.DoctorAppointmentRoleProvider"/>
      </providers>
    </roleManager>

 and after this u can check the role of the user using attribute **[Authorize(role="admin"])** and in Razor view you can check using User.IsinROle("A").
0

Le modèle Internet ASP.NET MVC 4 ajoute de nouvelles fonctionnalités très utiles qui s’appuient sur SimpleMembership. Ces modifications ajoutent quelques fonctionnalités intéressantes, telles qu'une API d'appartenance beaucoup plus simple et extensible et la prise en charge de OAuth. Cependant, les nouvelles fonctionnalités de gestion de compte nécessitent SimpleMembership et ne fonctionnent pas avec les fournisseurs d’adhésion ASP.NET existants.

Consultez les ressources pour l'identité ASP.NET ici:

http://www.asp.net/identity/overview/getting-started/aspnet-identity-recommended-resources

0
Ha Doan