175

我正在创建一个网站,但在数据库中我使用 Windows 身份验证。

我知道您使用它进行 SQL 身份验证

<connectionStrings> 
    <add name="NorthwindContex" 
       connectionString="data source=localhost;
       initial catalog=northwind;persist security info=True; 
       user id=sa;password=P@ssw0rd" 
       providerName="System.Data.SqlClient" /> 
</connectionStrings>

如何修改它以使用 Windows 身份验证?

4

4 回答 4

243

将用户名和密码替换为Integrated Security=SSPI;

所以连接字符串应该是

<connectionStrings> 
<add name="NorthwindContex" 
   connectionString="data source=localhost;
   initial catalog=northwind;persist security info=True; 
   Integrated Security=SSPI;" 
   providerName="System.Data.SqlClient" /> 
</connectionStrings> 
于 2013-01-11T01:13:28.017 回答
31

要通过 Windows 身份验证连接到 sql server 数据库,基本上需要您要连接的服务器、您的数据库名称、集成安全信息和提供程序名称。

基本上这有效:

<connectionStrings>      
<add name="MyConnectionString"
         connectionString="data source=ServerName;
   Initial Catalog=DatabaseName;Integrated Security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings> 

Integrated Security字段设置为true意味着您希望通过 Windows 身份验证访问数据库,如果您将此字段设置为false , Windows 身份验证将不起作用。

根据您使用的提供商,它的工作方式也不同。

  • SqlClient集成安全=true;IntegratedSecurity=SSPI;正在工作中。

  • OleDbIntegrated Security=SSPI;

  • odbcTrusted_Connection=yes;
  • OracleClientIntegrated Security=yes;

与 OleDb 提供程序一起使用时,Integrated Security=true 会引发异常。

于 2019-03-06T09:08:01.677 回答
29

几个小时后的正确解决方案:

  1. 打开配置文件
  2. 使用以下内容更改连接字符串

<add name="umbracoDbDSN" connectionString="data source=YOUR_SERVER_NAME;database=nrc;Integrated Security=SSPI;persist security info=True;" providerName="System.Data.SqlClient" />

  1. 使用您当前的服务器名称更改YOUR_SERVER_NAME并保存
  2. 打开 IIS 管理器
  3. 查找网站或 Web 应用程序正在使用的应用程序池的名称
  4. 右键单击并选择高级设置
  5. 从Process Model下的 Advanced settings将Identity 更改为 Custom 帐户并添加您的 Server Admin 详细信息,请参阅附图:

在此处输入图像描述

希望这会有所帮助。

于 2017-12-13T12:33:04.987 回答
12

这更短并且有效

<connectionStrings>      
<add name="DBConnection"
             connectionString="data source=SERVER\INSTANCE;
       Initial Catalog=MyDB;Integrated Security=SSPI;"
             providerName="System.Data.SqlClient" />
</connectionStrings> 

不需要持久安全信息

于 2017-09-26T15:45:47.020 回答