C# 在由标识生成的AspNetUserRoles表中分配角色

C# 在由标识生成的AspNetUserRoles表中分配角色,c#,asp.net,sql-server,asp.net-identity,roles,C#,Asp.net,Sql Server,Asp.net Identity,Roles,我真的不明白如何处理这个身份问题,下面我尽了最大努力,我没有错误,但它什么也没做,我想知道为什么。 我还检查了这个: 数据库中的表被修改了,我有:Id(自动递增,主键),RoleId,UserId-默认情况下和没有主键的情况下 protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) { // Default UserStore constructor uses the def

我真的不明白如何处理这个身份问题,下面我尽了最大努力,我没有错误,但它什么也没做,我想知道为什么。 我还检查了这个:

数据库中的表被修改了,我有:Id(自动递增,主键),RoleId,UserId-默认情况下和没有主键的情况下

 protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
    {

        // Default UserStore constructor uses the default connection string named: DefaultConnection
        var userStore = new UserStore<IdentityUser>();
        var roleStore = new RoleStore<IdentityRole>();
        var manager = new UserManager<IdentityUser>(userStore);  
        var RoleManager = new RoleManager<IdentityRole>(roleStore);

        var user = new IdentityUser { UserName = CreateUserWizard1.UserName };
        var role = new IdentityRole { Id = RadioButtonList1.SelectedValue};

        //Create new user and try to store in DB.

        if (CreateUserWizard1.Password.ToString() == CreateUserWizard1.ConfirmPassword.ToString())
        {
            try
            {
                IdentityResult result = manager.Create(user, CreateUserWizard1.Password.ToString());
                if (result.Succeeded)
                {   

                    var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
                    var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);

                    var selectedRole = RadioButtonList1.SelectedValue;

                    var currentUser = manager.FindByName(user.UserName);
                    var roleResult = manager.AddToRole(currentUser.Id, selectedRole);

                    authenticationManager.SignIn(new AuthenticationProperties(), userIdentity);
                    .
                    .
受保护的void CreateUserWizard1\u CreatedUser(对象发送方,事件参数e)
{
//默认UserStore构造函数使用名为DefaultConnection的默认连接字符串
var userStore=new userStore();
var roleStore=新的roleStore();
var-manager=新的UserManager(userStore);
var RoleManager=新RoleManager(roleStore);
var user=new IdentityUser{UserName=CreateUserWizard1.UserName};
var role=newidentityrole{Id=RadioButtonList1.SelectedValue};
//创建新用户并尝试在数据库中存储。
if(CreateUserWizard1.Password.ToString()==CreateUserWizard1.ConfirmPassword.ToString())
{
尝试
{
IdentityResult result=manager.Create(用户,CreateUserWizard1.Password.ToString());
if(result.successed)
{   
var authenticationManager=HttpContext.Current.GetOwinContext().Authentication;
var userIdentity=manager.CreateIdentity(用户,DefaultAuthenticationTypes.ApplicationOkie);
var selectedRole=RadioButtonList1.SelectedValue;
var currentUser=manager.FindByName(user.UserName);
var roleResult=manager.AddToRole(currentUser.Id,selectedRole);
authenticationManager.SignIn(新AuthenticationProperties(),userIdentity);
.
.

我不是在寻找用visual studio制作的经典解决方案。我有SQL的用户配置文件,工作正常,但我的角色现在乱七八糟。如果我手动将RoleId和UserId放入SQL表中,它们工作正常。

您尝试过使用另一个和另一个吗

它们都接受数据库上下文作为参数


在这两个链接中,都使用了您提供的带参数的构造函数。

我会尽快检查,但请简要解释一下……这些是我必须编写的带方法的类吗?我非常困惑,因为我可以创建没有上述任何内容的用户。我更困惑的是,我在互联网上发现了很多使用MVC的示例,而我没有使用MVC。我从Asp.net空应用程序开始。我将检查这两个想法,如果有解决方案或其他问题,我将稍后编辑代码。谢谢。