Пользовательский поставщик членства и роли в ASP.NET MVC 4 - программирование
Подтвердить что ты не робот

Пользовательский поставщик членства и роли в ASP.NET MVC 4

Я создаю веб-приложение ASP.NET MVC 4. Я googled о пользовательском членстве, но я не мог найти хорошие ресурсы или видео-лекции.

Большинство из них либо устарели, либо мертвые ссылки. Пожалуйста, вы можете предложить некоторые ресурсы о том, как начать писать членство и роль поставщика.

4b9b3361

Ответ 1

Понимание о членстве и ролях было для меня довольно сложным, так как вы сказали, что не так много надежного и подробного контента, который вы найдете в Интернете. Я попытался посмотреть несколько видеороликов, чтобы понять эту тему, но не был ясен. Но затем на помощь пришли две статьи с сайта Code Project. Я использую эту ссылку, где вы можете увидеть пошаговое руководство о настройке членства

Ссылка 1
Ссылка 1 поможет вам заменить электронное письмо с именем пользователя для аутентификации входа в систему, это одна из самых распространенных настроек, которые разработчикам необходимо предоставить в Microsoft Identity Module.

Link2

Вторая статья поможет вам понять добавление и присоединение ролей к создаваемому пользователю и как ограничить доступ к странице регистрации пользователя только администратору. Таким образом, с помощью этих двух статей я надеюсь, что вы поймете основы аутентификации и авторизации.

Ответ 2

Я предлагаю использовать идентификатор ASP.Net вместо старого членства. ASP.Net Identity - это путь лучше и более гибкий, чем старое членство, он также поддерживает проверку подлинности на основе ролей с помощью фильтров действий, и вы можете реализовать своих собственных настроенных поставщиков (таких как роль и поставщики пользователей).

см. ссылки ниже

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/

Ответ 3

Шаблон Интернета ASP.NET MVC 4 добавляет новые, очень полезные функции, которые построены поверх SimpleMembership. Эти изменения добавляют некоторые замечательные функции, такие как гораздо более простой и расширяемый API членства и поддержка OAuth. Однако для новых функций управления учетными записями требуется SimpleMembership и не будет работать с существующими поставщиками членства ASP.NET

Проверьте ресурсы для ASP.NET Identity здесь:

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

Ответ 4

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").