在我的asp.net MVC项目中
我有一个连接字符串的数据库连接: Data Source = .; Initial Catalog = dbname; Integrated Security = True
所有用户都可以在该连接上执行存储过程,我想记录这些用户。
所以在每次执行后我将“User.Identity.Name”存储到另一个数据库。 这项工作非常适合我的开发机器,但在部署之后,要访问该站点,我必须通过VPN连接,然后远程桌面到运行IIS的同一台服务器,并在那里使用Web浏览器。然后我得到User.Identity.Name:“NT AUTHORITY \ NETWORK SERVICE”。我希望它是我在远程桌面中输入的可以访问数据库的凭据。
任何想法我怎么能让这个工作?
iis6身份验证:“Windows身份验证:已启用” web.config:
答案 0 :(得分:5)
你必须使用模仿。否则,使用应用程序池标识。基本上,这是使用此web.config条目
完成的<identity impersonate="true" />
这里有完整的参考资料。
答案 1 :(得分:2)
您需要将Impersonation设置为true,否则网站将在用于AppPool的凭据下运行。它在Cassini中运行的原因是Cassini在您调试时以您自己的凭据运行。