如何在实体框架中使用连接字符串指定用户名

时间:2019-07-17 11:06:15

标签: c# sql-server entity-framework asp.net-core

即使我在所使用的连接字符串中指定了其他用户,我的ASP.Net Core应用程序仍尝试使用“默认”用户名登录数据库。那就是我不断收到同样的异常:

在处理请求时发生未处理的异常。 SqlException:无法打开登录请求的数据库“ testDB”。登录失败。 用户'DESKTOP-555DDD \ skorejen'登录失败。

即使我使用的连接字符串定义了不同的用户名。

如何解决该问题,以便我的应用使用指定用户名的连接字符串登录?

连接字符串:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=testDB;User Id=myusername;Trusted_Connection=True;"
  },

ASP.Net Core Startup.cs文件:

public void ConfigureServices(IServiceCollection services)
        {
             services.AddDbContext<OrderContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
        }

2 个答案:

答案 0 :(得分:1)

您将需要启用sql authentication mode,将用户添加到sql服务器登录名并在连接字符串中指定密码。

示例连接字符串:

  

Server = myServerAddress;数据库= myDataBase;用户ID = myUsername;   密码= myPassword;

source

启用sql authentication mode

enter image description here

答案 1 :(得分:1)

您的ConnectionStrings必须采用以下格式:

具有凭据(sql身份验证):

"ConnectionStrings": {
  "DefaultConnection": "Server=myServerAddress; Database=myDataBase; User Id=myUsername; password=myPassword; Trusted_Connection=false; MultipleActiveResultSets=true;"
}

没有凭据(Windows身份验证):

"ConnectionStrings": {       
  "DefaultConnection": "Server=myServerAddress; Database=myDataBase; Trusted_Connection=True; MultipleActiveResultSets=true"        
}