ASP.NET核心实体框架用户模拟失败

时间:2017-08-07 20:27:47

标签: asp.net-core impersonation

我正在开发一个ASP.NET Core webapp,它需要转发用户窗口的凭据,以便通过Entity Framework用于数据库访问。但是数据库访问会引发异常。 using (WindowsImpersonationContext impersonationContext = ((WindowsIdentity)User.Identity).Impersonate()) { var debug2 = WindowsIdentity.GetCurrent(); // shows the desired user entiryFrameworkContext.BlahBlahBlah.ToList(); }

我尝试在中间件中使用模拟,以及在查询本身周围使用模拟。我调用它的方式是:

app.Use(async (context, next) =>
    {
        using (WindowsImpersonationContext impersonationContext = ((WindowsIdentity)context.User.Identity).Impersonate())
        {
            var debug = WindowsIdentity.GetCurrent(); // shows the desired user
            await next.Invoke();
        }
    });

或者如果我采用中间件方法:

ulimit -t 10; ./my-process

无论是在推送模式下推送到IIS还是在VS2017 IIS Express中运行,结果都是相同的。

有没有人知道为什么匿名用户仍然用于数据库调用?如果是这样,我该如何解决?

0 个答案:

没有答案