Mic*_*uli 5 impersonation .net-core
我们正在尝试使用 RunImpersonated(handle, action); 能够从网络服务器执行 REST 调用,但我们很难这样做。项目 i ASP.NET Core 2.0 MVC。
我们有以下一般方法来建立一个小鬼。context 代表登录的 wnd。用户:
var user = WindowsIdentity.GetCurrent();
IntPtr token = user.Token;
SafeAccessTokenHandle handle = new SafeAccessTokenHandle(token);
WindowsIdentity.RunImpersonated(handle, action);
Run Code Online (Sandbox Code Playgroud)
基本上在我们进行 REST 调用的操作中。
事情是我们可以在我们的开发机器上本地运行而没有任何问题,但我们不能在远程网络服务器上做同样的事情。因此:冒充。
是我们上面针对小鬼的方法。部分正确,因为我们实际上无法确定我们是否推广任何用户凭据?
我们在 REST-GET impl 中尝试了不同的技术。也没有上述情况。另一方面,上面的调用更接近我们的控制器和 REST impl。没有任何关于小鬼的细节。本身。
小智 0
前一段时间我还很关心。据我记得,这对我有用:
public class ImpersonationFilter : IAsyncActionFilter
{
public async Task OnActionExecutionAsync(
ActionExecutingContext context,
ActionExecutionDelegate next)
{
var user = (WindowsIdentity)context.HttpContext.User.Identity;
await WindowsIdentity.RunImpersonated(user.AccessToken, async () =>
{
await next();
});
}
}
Run Code Online (Sandbox Code Playgroud)
将其注册为任何其他过滤器。
| 归档时间: |
|
| 查看次数: |
3024 次 |
| 最近记录: |