Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Web窗体中实现ASP.NET标识中的角色_C#_Asp.net Identity - Fatal编程技术网

C# 如何在Web窗体中实现ASP.NET标识中的角色

C# 如何在Web窗体中实现ASP.NET标识中的角色,c#,asp.net-identity,C#,Asp.net Identity,我使用以下代码成功创建了一个新用户: protected void btnRegister_Click(object sender, EventArgs e) { // Default UserStore constructor uses the default connection string named: DefaultConnection var userStore = new UserStore<IdentityUser&g

我使用以下代码成功创建了一个新用户:

        protected void btnRegister_Click(object sender, EventArgs e)
    {
        // Default UserStore constructor uses the default connection string named: DefaultConnection
        var userStore = new UserStore<IdentityUser>();
        var manager = new UserManager<IdentityUser>(userStore);
        var user = new IdentityUser() { UserName = txtbxUserName.Text };
        IdentityResult result = manager.Create(user, txtbxPassword.Text);
        if (result.Succeeded)
        {
            var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
            var userIdentity =
               manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
            authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity);
            Response.Redirect("~/MoneyFly");
        }
        else
        {
            litStatusMessage.Text = result.Errors.FirstOrDefault();
        }
    }
我努力复制代码中的内容

这部分是因为它包含一个自动生成的类,我没有这个类

ApplicationDbContext context = new ApplicationDbContext();
如何生成dbContext。它在框架的使用中似乎至关重要。 例如,这行代码使用它来创建RoleStore的实例

 var roleStore = new RoleStore<IdentityRole>(context);
var-roleStore=新的roleStore(上下文);
我找到了解决方案

这个解决方案对我有效

            var roleStore = new RoleStore<IdentityRole>();
        var roleMgr = new RoleManager<IdentityRole>(roleStore);
        IdentityResult IdRoleResult = roleMgr.Create(new IdentityRole { Name = "Administrator" });
        var userStore = new UserStore<IdentityUser>();
        var manager = new UserManager<IdentityUser>(userStore);
        IdentityResult IdUserResult = manager.AddToRole( manager.FindByName("vi").Id, "Administrator");
var-roleStore=new-roleStore();
var roleMgr=新角色管理器(角色存储);
IdentityResult idrolesult=roleMgr.Create(新IdentityRole{Name=“Administrator”});
var userStore=new userStore();
var-manager=新的UserManager(userStore);
IdentityResult IdUserResult=manager.AddToRole(manager.FindByName(“vi”).Id,“管理员”);

您不必向RoleStore构造函数提供DBContext。

ApplicationDbContext是从EntityFramework的DBContext类继承的类类型。您可能需要阅读EntityFramework以了解DbContextdan mann,这里有一个链接可以帮助您实现您试图构建的大部分内容。当我最近为我的组织建立了我的第一个帐户登录时,这对我来说是一个很大的帮助。我知道这是代码优先。但是,生成数据库然后生成ApplicationDBContext的过程是什么?
            var roleStore = new RoleStore<IdentityRole>();
        var roleMgr = new RoleManager<IdentityRole>(roleStore);
        IdentityResult IdRoleResult = roleMgr.Create(new IdentityRole { Name = "Administrator" });
        var userStore = new UserStore<IdentityUser>();
        var manager = new UserManager<IdentityUser>(userStore);
        IdentityResult IdUserResult = manager.AddToRole( manager.FindByName("vi").Id, "Administrator");