日期:2014-05-17  浏览次数:20414 次

web.config中连接字符串的问题
在<appSettings>配置连接数据库的问题
如何将<add key="DBConnection" value="workstation id=doughty;server=.\SQLEXPRESS;packet size=4096;user id=sa;initial catalog=doughty_bbs;persist security info=True;password=sa"></add>
改为使用使用Windows验证登录
注:不想使用<connectionStrings>,我是从网上下的代码,如果使用<connectionStrings>还需要改动许多地方

------解决方案--------------------
参考:
http://www.cnblogs.com/zlytu/archive/2011/11/22/2258364.html
------解决方案--------------------
连接字符串写法大全

自己查下。
------解决方案--------------------
参看 
www.connectionstrings.com
------解决方案--------------------
<connectionStrings>
<add name="链接名字" connectionString="data source=.;initial catalog=数据库名字;integrated security=true"/>
</connectionStrings>

<connectionStrings>
<add name="DBconnection" connectionString="data source=.;initial catalog=DBsellou;integrated security=true"/>
</connectionStrings>
------解决方案--------------------
可以使用integrated security=true
但是web中有点tricky,因为IIS中默认使用NETWORK SERVICE(win2k3, IIS6)这个账户运行asp.net应用程序的。
因此你需要设置NETWORK SERVICE对数据库的权限。但是这样做有点危险。
你有两种方式避免给network service账户太多权限。
1. Impersonating a Fixed Identity with Windows Authentication
<identity impersonate="false" userName="" password="" />这样,asp.net就有了指定user的权限。所有的request都使用同样的用户,只要给指定user对数据的权限即可

2. Impersonating the Original Caller 
必须使用windows 模式的authentication.
<system.web>
...
<authentication mode="Windows"/>
<identity impersonate="true"/>
...
 </system.web>
这样,用户登录网站的identity将用于访问数据库。这样利于追踪是谁修改了数据库,可以用于audit。

具体参考:
How To: Use Windows Authentication in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ff647405.aspx