docker - 在 Docker 中以自定义用户身份运行 ASP.NET Core 应用程序

标签 docker asp.net-core connection-string runas integrated-security

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

如何使用我的域中的用户帐户运行上述应用程序的 Docker 容器。这也是我能做的事吗?如果是这样,这仍然是推荐的方法吗?这似乎possible using Windows containers但是 Linux 呢?

最佳答案

正如有人对您的问题发表评论一样,您不能这样做,因为您的网络中运行着两个独立的虚拟机。此外,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"

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

"MyServiceThatUsesSqlServer": {
      "MyConnectionString": "Server=sqlserver;Database=MyDatabaseName;User Id=sa;Password=MySaPasswordIsHere;"
    },

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

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

关于docker - 在 Docker 中以自定义用户身份运行 ASP.NET Core 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45209181/

相关文章:

docker - 在不旋转容器的情况下挤压 docker 镜像

azure - 如何通过 Entity Framework 核心代码优先方法从 cosmosdb 集合中设置分区键?

php - 无法连接到 MySQL 数据库

c# - 是否有比使用 IAsyncActionFilter 授权更好的方法来授权用户是否处于角色或用户 ID 在数据库中以获取特定记录

c# - 为什么我们需要连接字符串?

c# - 在数据层中获取Azure连接字符串

selenium - 如何链接和扩展多个 docker 容器?

json - Elastic Beanstalk:错误:无法解析Dockerrun JSON文件:json:无效使用,string struct标签,试图将未报价的值解码为int

Docker:找不到 Alpine linux 社区包

c# - 无法将自定义用户数据添加到搭建的 ASP.NET Core 项目