我在并行调用WCF服务的问题。 我试图使用任务并行调用两个服务,以节省一些时间(我并不想使这个异步),但我的任务正在运行的其他用户。 这两种服务都需要Windows认证和两个呼叫失败,因为用户调用该服务不具备所需的权限。
调用代码(代码下面)位于ASP.NET MVC4一个控制器动作内,运行。IIS 7.5。 所有涉及的应用程序池被设置为允许ASP.NET模拟,并要求Windows身份验证(所有其他方法设置为禁用)。
// Parallel service request to two services
Task<object>[] tasks = new Task<object>[2];
// this shows my credentials, e.g. "MYDOMAIN\\MyUsername"
var userMe = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
tasks[0] = Task<object>.Factory.StartNew(() =>
{
// this shows "IIS APPPOOL\\DefaultAppPool"
var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var data = client1.MyMethod();
return data;
});
tasks[1] = Task<object>.Factory.StartNew(() =>
{
// this shows "IIS APPPOOL\\DefaultAppPool"
var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var data = client2.MyMethod();
return data;
});
Task.WaitAll(tasks);
我的问题:我如何指示的任务作为当前用户的身份运行,而不是运行的“IIS APPPOOL \默认应用”用户?