2011-03-30 123 views
0

我想在网站设置项目中使用自定义操作创建数据库。但我在“网站设置项目”中遇到了一个问题,但在使用常规“安装项目”时,每件事情都没有问题...如何使用c#使用域帐户连接到数据库?

问题来自身份验证时,我想访问数据库。看来,当我使用“安装项目”它使用我的实际用户名,通过,&域。而在“网站设置项目”中,它使用我的计算机名称&,因此它不起作用。因为它无法访问数据库。

所以,我需要一种方法来告诉网站使用我的帐户(我会通过它的自定义操作),其中包括我的用户名,通过,&域。

我该如何在C#中做到这一点?是否有一个API来做到这一点?

谢谢

回答

0

您无法在连接字符串中传递Windows凭据。如何做到这一点是在IIS(7及以上版本)中运行您的网站,并将您的应用程序池标识配置为在您想要的帐户下运行。看看这里如何:http://technet.microsoft.com/en-us/library/cc771170(WS.10).aspx

虽然这不是通常的做法。通常你会在你的sql服务器上创建一个sql账户,然后在你的连接字符串中,你会这样做:

“Data Source = [ServerName]; Initial Catalog = [DatabaseName]; User Id = [SqlAccount];密码= [SqlAccountPassword]”

然后你可以去一次在SQL进一步加强和配置给该网站账户等

+0

我会质疑,你通常创建SQL帐户访问什么。正常的做法是使用Windows帐户并模拟该帐户以使用SSPI进行连接 - 请参阅http://msdn.microsoft.com/en-us/library/ff647396.aspx – 2011-03-30 11:41:03

+0

@Steve,根据我的经验,模拟不是规范。这是由于它打破了连接池并只能在Intranet方案中工作。 – BenCr 2011-03-30 11:49:12

+0

@Steve第一步是使用模拟,但老实说,我看不到任何理由为什么不宁愿使用SQL帐户,它只是给你更多的灵活性? – 2011-03-30 12:37:46