Управление на потребителските роли в ASP.NET

+8 гласа
173 прегледа
попитан 2016 май 31 от Nikoleta.V. (4,090 точки)

Опитвам се да използвам вградената в Asp.net система за управление на ролите, но не мога да я подкарам. Опитах с различни подходи. Единият беше да направя Test контролер и да инициализирам няколко потребителя и да им задам роли. 

string newRoleName = RoleName.Trim(); 

 if (!Roles.RoleExists(newRoleName)) // here I get timeout error 

    // Create the role 

    Roles.CreateRole(newRoleName); 

Другият беше следния: 

var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>()); // here I get this error 

      // The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of DbContext and related classes are not guaranteed to be thread safe. 

        var appUser = new ApplicationUser 

        { 

            UserName = model.Email, 

            Email = model.Email 

        }; 

        IdentityResult identityUserResult = UserManager.Create(appUser, model.Password); 

        roleManager.Create(new IdentityRole("Admin")); 

        UserManager.AddToRole(appUser.Id, "Admin"); 

Не знам как да го накарам да работи. Може ли някой да ме насочи? Използвам Azure и .NET 4.5.

1 отговор

+2 гласа
отговорени 2016 юни 2 от valeri.hristov (7,340 точки)

Въведение в ASP.NET Identity:

http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity

ASP.NET membership системата е представена с 2.0 версията през 2005, и от тогава има много промени в начините, по които уеб приложенията обработват автентификацията и авторизацията. ASP.NET Identity е нов поглед за това, как трябва да изглежда системата, когато правиш модерни приложения за уеб,телефон или таблет.

Основи на ASPNet MVC и ASPNet Identity:

http://www.codeproject.com/Articles/762428/ASP-NET-MVC-and-Identity-Understanding-the-Basics

По начало, ASP.NET Identity била API за управление на сигурността и авторизацията в контекста на публичните уеб приложения, изградени с ASP.NET. Identity платформата предоставя модерни подходи като интеграция на log-in през социални мрежи и лесно разширяеми потребителски модели. Новият RTM release дава следното(и не само):

  • Разширен User Account Definition, включително Two-Factor автентификация чрез имейл или СМС, подобно на използвания от Google,Microsoft и други
  • Потвърждение на акаунта през имейл
  • Административно управление на потребители и роли
  • Заключване на акунта в резултат на невалидни опити за влизане
  • Security Token Provider, който генерира потребителски token, в резултат на промени в настойките на сигурността
  • Подобрена поддръжка на log-in от социални мрежи
  • Лесна интеграция на Claims-Based авторизация
...