ASP.NET核心:如何在连接字符串中指定Windows身份验证的凭据?
我正在开发一个ASP.NET Core 5.0 web API,我的计划是将其部署到AWS Lambda。为了做到这一点,我需要使用AWS Lambda.NET 5.0基本Docker映像(一个Linux映像)对API进行容器化。不幸的是,这意味着我的数据库的Windows身份验证在容器中不起作用,因为它是Linux,所以我总是会收到一个错误,说: 无法使用Kerberos进行身份验证。确保已在客户端上使用“kinit”初始化Kerberos,并且已为SQL Server注册服务主体名称以允许Kerberos身份验证 每次我尝试访问连接到Microsoft SQL Server数据库的API端点时,都会发生这种情况。我曾尝试在容器中启用Kerberos,但我尝试过的所有方法都没有奏效。我尝试通过添加以下行来实现这一点:ASP.NET核心:如何在连接字符串中指定Windows身份验证的凭据?,asp.net,windows,amazon-web-services,kerberos,Asp.net,Windows,Amazon Web Services,Kerberos,我正在开发一个ASP.NET Core 5.0 web API,我的计划是将其部署到AWS Lambda。为了做到这一点,我需要使用AWS Lambda.NET 5.0基本Docker映像(一个Linux映像)对API进行容器化。不幸的是,这意味着我的数据库的Windows身份验证在容器中不起作用,因为它是Linux,所以我总是会收到一个错误,说: 无法使用Kerberos进行身份验证。确保已在客户端上使用“kinit”初始化Kerberos,并且已为SQL Server注册服务主体名称以允许K
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -qq update &&
apt-get -yqq install krb5-user libpam-krb5 &&
apt-get -yqq clean
<system.web>
<authentication mode="Windows"/>
<identity impersonate="true" userName="foo" password="bar"/>
</system.web>
到我的Dockerfile安装Kerberos,但我仍然遇到同样的问题。因此,这就引出了我的实际问题(除非有人能就如何让Kerberos工作提供建议)。我已经决定,如果我可以在应用程序中指定我的windows身份验证凭据,这样容器中的API就可以使用它进行身份验证,这将是最简单的。我必须使用windows身份验证(我没有设置传统身份验证的选项),因此在这一点上,这似乎是最好的解决方案。有可能这样做吗
我已尝试在.csproj文件中设置身份模拟,但添加以下行后无法加载我的项目:
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -qq update &&
apt-get -yqq install krb5-user libpam-krb5 &&
apt-get -yqq clean
<system.web>
<authentication mode="Windows"/>
<identity impersonate="true" userName="foo" password="bar"/>
</system.web>
也许这是对的,但我做得不对?看来我也不能在连接字符串中指定用户ID和密码,因为据我所知,Windows身份验证从未使用过用户ID和密码。任何建议都将不胜感激