我将实体框架和 ASP.NET 动态数据合并到现有应用程序中,该应用程序设置为在 web.config 中使用 impersonation="true",但是以前的开发人员选择了一种方法,他们为每个应用程序恢复到应用程序池标识他们打的 DAL 电话
private WindowsImpersonationContext context = null;
public void RevertToAppPool()
{
if (!WindowsIdentity.GetCurrent().IsSystem)
{
context = WindowsIdentity.Impersonate(System.IntPtr.Zero);
}
}
public void UndoImpersonation()
{
if (context != null)
{
context.Undo();
}
}
我被要求在使用实体框架时保留这种行为......鉴于实体对象在所有地方都被使用(在 LINQ to EF 查询、手动调用、框架的幕后调用等),部分类中的适当位置在哪里可以对每个调用进行适当的 RevertToAppPool 和 UndoImpersonation 调用?