使用Entity Framework模拟用户

时间:2009-12-23 19:49:57

标签: entity-framework impersonation

因此,我们将Web应用程序与实体框架配合使用。我们想要做的是在我们访问数据库时冒充当前用户。我们对在我们的网络配置中设置模拟不感兴趣。

理想情况下,当我们即将访问数据时,请使用以下内容:http://geekswithblogs.net/jkurtz/archive/2007/08/27/114992.aspx

更新:我正在寻找一种方法来抽象出这个代码,所以我不必在每个存储库函数调用中都有它。

1 个答案:

答案 0 :(得分:2)

您的EF连接字符串需要设置为使用可信连接。

您不需要在web.config中设置Impersonation,但您需要使用Windows身份验证。

然后就这样做:

using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
using (var dbContext = new MyEntityFrameworkContainer())
{
    ...
}

using语句的花括号内的任何代码都将作为经过身份验证的用户运行。