在Docker中运行ASP.NET Core App作为自定义用户运行

Muh*_*eed 5 connection-string runas integrated-security docker asp.net-core

我有一个ASP.NET应用程序的核心连接到使用数据库Integrated Security=True连接字符串中,从而使运行该应用程序的用户的凭据用于连接到数据库,这样我就不必添加用户名和密码User Id=username;Password=password在连接字符串.

如何使用我的域中的用户帐户运行上述应用程序的Docker容器.这是我能做的事情吗?如果是这样,它仍然是推荐的方法吗?这似乎可以使用Windows容器但是linux呢?

Jua*_*uan 2

正如有人对您的问题发表评论时,您不能这样做,因为您的网络中运行着两个独立的虚拟机。此外,docker 的 SQL Server 映像是基于 Linux 的,因此它会使其更加复杂。我要做的(我的团队已经在做)是拥有一个 sa SQL 帐户并且:

1.- 在 docker-compose.yml 中:

 sqlserver:
    image: microsoft/mssql-server-linux:latest
    container_name: sqlserver
    volumes:
      - mssql-server-linux-data:/var/opt/mssql/data
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=MySaPasswordIsHere
    ports:
      - "1433:1433"
Run Code Online (Sandbox Code Playgroud)

2.- 在我的连接字符串中,它看起来像:

"MyServiceThatUsesSqlServer": {
      "MyConnectionString": "Server=sqlserver;Database=MyDatabaseName;User Id=sa;Password=MySaPasswordIsHere;"
    },
Run Code Online (Sandbox Code Playgroud)

我希望它能帮助您解决这个问题。

PS:这里解释了“在 Linux 上使用 SQL Server 进行 Active Directory 身份验证”的最新可能方法:https: //learn.microsoft.com/en-us/sql/linux/sql-server-linux-active-directory-验证