1

我最近一直在为客户开发一个 ASP.NET 项目。该项目是将数据库从旧的 Oracle 数据库迁移到新的 SQL Server 2008 数据库。迁移进行得很顺利,大部分程序并没有花很长时间来修复。但是我们现在遇到了一个问题,到目前为止,我们一直在使用 SQL Server 身份验证并使用用户名和密码从 .NET 代码访问数据库。下面显示了连接字符串:

<add key="DatabaseConnectionString" value="Data Source=DATASOURCE;Initial Catalog=DATABASE;User Id=USERID;Password=PASSWORD;"/>

这工作得很好,但是最近我收到了客户的电子邮件说:

“您可以使用 Active Directory 帐户,而不是使用 .NET 应用程序的本地 SQL 帐户来访问数据库。在 web.config 中,它会显示<domain name>/<username>而不仅仅是<username>.”

我感到困惑的是:

我是否必须将 SQL Server 中的身份验证模式更改为 Windows 身份验证?客户的意思是将其从 to 更改<username><domain>/<username>或相反?我需要在 web.config 中的什么位置对用户名进行此更改?它在连接字符串中吗?

对此的任何帮助都会很棒。

我也不确定你是否需要知道这一点,但无论如何我已经添加了它......

这是 web.config 的 Authentication 部分:

<identity impersonate="true"/>
<authentication mode="Windows"/>
4

1 回答 1

2

我是否必须将 SQL Server 中的身份验证模式更改为 Windows 身份验证?

不,因为始终启用 Windows 身份验证。但是,禁用 Sql Server 身份验证是一种很好的做法。

客户端是否意味着将其从“用户名”更改为“域/用户名”

不,这不仅仅是添加域名。您需要针对活动目录对用户进行身份验证,并使用委托进行 sql 连接。要使用 windows 帐户,您需要决定是要特定帐户访问 Sql Server,还是要登录网站的用户帐户。我认为第一种方法几乎总是更好。为此,您需要从连接字符串中删除用户 ID 和密码,并将其替换为“Integrated Security=SSPI”,并将应用程序池标识设置为活动目录用户帐户。在 Sql Server 中,您需要授予此帐户执行所需操作的权限。对于第二种方式,您需要对网站中的用户进行 Windows 身份验证,并使用委托进行连接。我不知道模仿是否足够。

于 2012-07-17T14:43:34.167 回答