C# 仅使用SQL向asp.net mvc代码模板添加角色

C# 仅使用SQL向asp.net mvc代码模板添加角色,c#,sql,asp.net-mvc,asp.net-mvc-4,C#,Sql,Asp.net Mvc,Asp.net Mvc 4,我正在试验asp.NETMVC代码模板。我想为这个简单的网站添加角色。我知道这可以通过代码完成,但为了更好地理解数据库结构,我想通过SQL脚本手动添加我的角色。为此,我尝试了以下方法: 我首先运行了这个网站,通过标准的MVC注册表单,我添加了一个用户名“registeredUser” 接下来,我使用以下SQL将一个角色连接到“registeredUser”: DECLARE @roleId AS UNIQUEIDENTIFIER = NEWID() DECLARE @userId AS UNIQ

我正在试验asp.NETMVC代码模板。我想为这个简单的网站添加角色。我知道这可以通过代码完成,但为了更好地理解数据库结构,我想通过SQL脚本手动添加我的角色。为此,我尝试了以下方法:

我首先运行了这个网站,通过标准的MVC注册表单,我添加了一个用户名“registeredUser”

接下来,我使用以下SQL将一个角色连接到“registeredUser”:

DECLARE @roleId AS UNIQUEIDENTIFIER = NEWID()
DECLARE @userId AS UNIQUEIDENTIFIER = (SELECT id FROM AspNetUsers WHERE    
UserName= 'registeredUser')
INSERT INTO AspNetRoles (Id, Name) VALUES (@roleId, 'Administrator')
INSERT INTO AspNetUserRoles (RoleId, UserId) VALUES(@roleId, @userId)
然后,我更改了注册方法的自动化检查,以便仅允许具有管理员角色的用户查看注册页面:

  [Authorize(Roles = "Administrator")]
  public ActionResult Register()
  {
      return View();
  }
完成此操作后,我希望只有名为“registeredUser”的用户才能访问注册页面。但当我以“registeredUser”登录时,我无法导航到注册页面。当我通过代码添加角色时,一切正常:

        ApplicationDbContext context = new ApplicationDbContext();
        var man = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
        var user = man.FindByName("registeredUser);
        man.AddToRole(user.Id, "Administrator");
        context.SaveChanges();
ApplicationDbContext context=new ApplicationDbContext();
var man=newusermanager(newuserstore(context));
var user=man.FindByName(“registeredUser”);
man.AddToRole(user.Id,“管理员”);
SaveChanges();
但是我想通过SQL而不是c代码来添加角色。那么我缺少了什么呢?我怎样才能只使用SQL脚本来添加角色?我缺少了一个插入,还是需要添加一些额外的脚本


Thx

检查数据库中鉴别器列中的值,并进行查询:在通过代码添加的同时在数据库上运行SQL profiler,以查看执行的SQL。Thx,显然我的问题是由大小写敏感问题引起的。我通过SQL脚本添加的GUID的大小写与实体框架添加的GUID的大小写不同。更改我的向导解决了这个问题。