C# winform aspnet.identity“;在master中未授予创建数据库权限";

C# winform aspnet.identity“;在master中未授予创建数据库权限";,c#,winforms,asp.net-identity,C#,Winforms,Asp.net Identity,我正在尝试使用aspnet.identity。我已经在VSTO插件项目中成功地实现了这一点。但是我现在正在做的一个winform项目抛出了一个错误“在master中未授予创建数据库权限” 我使用以下三个步骤 步骤1:使用nuget安装aspnet.indentity 步骤2:将连接字符串添加到app.config文件 <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastr

我正在尝试使用aspnet.identity。我已经在VSTO插件项目中成功地实现了这一点。但是我现在正在做的一个winform项目抛出了一个错误“在master中未授予创建数据库权限”

我使用以下三个步骤

步骤1:使用nuget安装aspnet.indentity 步骤2:将连接字符串添加到app.config文件

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="[[MY CONNECTION STRING HERE]]" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

步骤3:使用以下两种方法

        public bool VerifyUserNamePassword(string userName, string password)
        {
            var usermanager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new IdentityDbContext()));

            try
            {
                return usermanager.Find(userName, password) != null;
            }
            catch (Exception)
            {
                throw;
            }
            return false;
        }

        public IList<string> GetUserRole(string userName, string password)
        {
            var usermanager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new IdentityDbContext()));
            if (usermanager.Find(userName, password) != null)
            {
                var userID = usermanager.Find(userName, password).Id;
                return usermanager.GetRoles(userID);
            }

            return null;
        }
public bool VerifyUserNamePassword(字符串用户名,字符串密码)
{
var usermanager=newusermanager(newuserstore(newidentitydbcontext());
尝试
{
返回usermanager.Find(用户名、密码)!=null;
}
捕获(例外)
{
投掷;
}
返回false;
}
公共IList GetUserRole(字符串用户名、字符串密码)
{
var usermanager=newusermanager(newuserstore(newidentitydbcontext());
if(usermanager.Find(用户名、密码)!=null)
{
var userID=usermanager.Find(用户名、密码).Id;
返回usermanager.GetRoles(userID);
}
返回null;
}

此错误通常发生在您使用权限不足的用户创建数据库时。您是在使用windows身份验证还是在连接字符串中有用户?我提供的连接字符串指向已创建标识表的数据库。它甚至没有指向“主”数据库。另一个重要信息是,在我的VSTO excel加载项项目中使用的是同一个DB,并且使用了相同的代码。为了排除该DB,请尝试创建具有完全权限的用户并更新连接字符串。如果您尝试代码优先方法,是否指定了数据库名称,例如public Context():base(“MySchoolDB”)。当您使用权限不足的用户创建数据库时,通常会出现此错误。您是在使用windows身份验证还是在连接字符串中有用户?我提供的连接字符串指向已创建标识表的数据库。它甚至没有指向“主”数据库。另一个重要信息是,在我的VSTO excel加载项项目中使用的是同一个DB,并且使用了相同的代码。为了排除该DB,请尝试创建具有完全权限的用户并更新连接字符串。假设您正在尝试代码优先的方法,是否指定了类似于public Context():base(“MySchoolDB”)的DB名称。