asp.net中的用户管理角色

时间:2016-01-18 13:56:15

标签: c# asp.net

我正在尝试使用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作为我的存储,框架版本是4.5

1 个答案:

答案 0 :(得分:0)

Introduction to ASPNet Identity

  

ASP.NET成员资格系统是在2005年与ASP.NET 2.0一起引入的,从那时起,Web应用程序通常处理身份验证和授权的方式发生了很多变化。当您为Web,电话或平板电脑构建现代应用程序时,ASP.NET身份是对会员系统应该是什么的全新看法。

ASPNet MVC and ASPNet Identity - Understanding the Basics

  

2014年3月20日,ASP.NET团队发布了新Identity框架的RTM 2.0版。新版本带来了一些期待已久的新功能,并标志着所有类型的ASP.NET应用程序可用的安全性和授权功能的大幅扩展。

     

ASP.NET Identity框架最初是作为ASP.NET Membership系统的后续版本于2013年推出的,它是MVC应用程序的主要部分,已经开始显示它的时代了。最初,ASP.NET Identity提供了一个有用的,如果有点微小的API,用于在使用ASP.NET构建的面向公众的Web应用程序的上下文中管理安全性和授权。 Identity框架引入了现代功能,例如社交网络登录集成和易于扩展的用户模型定义。   新的RTM版本引入了以下功能:

     
      
  • 扩展用户帐户定义,包括电子邮件和联系信息   通过电子邮件或短信发送双因素身份验证,功能类似于Google,Microsoft和其他人使用的身份验证
  •   
  • 通过电子邮件发送帐户确认
  •   
  • 用户和角色的管理
  •   
  • 帐户锁定以响应无效登录尝试
  •   
  • 安全令牌提供程序,用于重新生成用户的安全令牌以响应安全设置的更改。
  •   
  • 改进了对社交登录的支持
  •   
  • 轻松整合基于声明的授权
  •   
     

Identity 2.0代表了去年推出的原始版本的重大修订版。随着众多新功能的出现,增加了一些复杂性。如果像您一样,您刚刚在Identity框架的第一次迭代中找到了自己的方法,那么请准备好。虽然你不会从头开始使用2.0版,但还有很多东西需要学习。