因此,我们将Web应用程序与实体框架配合使用。我们想要做的是在我们访问数据库时冒充当前用户。我们对在我们的网络配置中设置模拟不感兴趣。
理想情况下,当我们即将访问数据时,请使用以下内容:http://geekswithblogs.net/jkurtz/archive/2007/08/27/114992.aspx。
更新:我正在寻找一种方法来抽象出这个代码,所以我不必在每个存储库函数调用中都有它。
答案 0 :(得分:2)
您的EF连接字符串需要设置为使用可信连接。
您不需要在web.config中设置Impersonation,但您需要使用Windows身份验证。
然后就这样做:
using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
using (var dbContext = new MyEntityFrameworkContainer())
{
...
}
using语句的花括号内的任何代码都将作为经过身份验证的用户运行。