我的 DBA 要求通过受信任的域帐户完成所有数据库访问。如果您设置 web.config ,则可以做到这一点。这要求用户登录或在域上,以便 IE 传递凭据。我想通过使用代码来模拟用户。我正在使用此知识库文章中的代码:
http://support.microsoft.com/kb/306158
效果很好,我传入凭据,模拟用户,然后调用数据库并返回数据。
问题是如果我转到另一个页面,我会丢失我的模拟凭据。这意味着每次我调用数据库时,我都必须运行模拟代码。
如果 IIS 可以为所有页面模拟域用户,那么为什么我在使用代码时不能模拟用户?
这似乎与线程上下文切换有关。我尝试在 Aspnet.config 文件中设置 alwaysFlowImpersonatingPolicy,但它不起作用。
http://msdn.microsoft.com/en-us/library/ms229553.aspx
有什么建议吗?甚至可以做我想做的事吗?