Silverlight WCF服务模拟一个用户但仍然是用户Windows身份验证?
我正在使用Silverlight WCF服务模拟一个用户但仍然是用户Windows身份验证?,silverlight,wcf,iis,wcf-security,Silverlight,Wcf,Iis,Wcf Security,我正在使用LinqToEntitiesDomainService连接到SQL Server数据库。这需要Windows身份验证,我已经在工作了 我编写了一个web服务,它使用Activator.CreateInstance(…)在服务器上运行一个可执行文件。我希望这也能使用Windows身份验证。但是,我需要该服务具有运行可执行文件的适当权限 当我现在运行该服务时,它工作正常。我的帐户具有适当的角色进行身份验证。我在服务器上也有上帝般的权限,这允许我使用Activator.CreateInsta
LinqToEntitiesDomainService
连接到SQL Server数据库。这需要Windows身份验证,我已经在工作了
我编写了一个web服务,它使用Activator.CreateInstance(…)
在服务器上运行一个可执行文件。我希望这也能使用Windows身份验证。但是,我需要该服务具有运行可执行文件的适当权限
当我现在运行该服务时,它工作正常。我的帐户具有适当的角色进行身份验证。我在服务器上也有上帝般的权限,这允许我使用Activator.CreateInstance(…)
命令
虽然具有适当角色的其他用户可以进行身份验证,但他们的帐户在服务器上没有权限,也不应该有权限
是否有一些(最好是简单的)方法可以作为一个用户运行服务,但所有的身份验证都是通过windows身份验证完成的?如果我能在一个应用程序池中完成这一切也是最好的
谢谢大家! 是的,你可以,看看这个。这显示了一些模拟用户的技术
using (WindowsImpersonationContext impersonationContext =
((WindowsIdentity)User.Identity).Impersonate())
{
// do something as current user
}
或者在WCF中,您也可以对其进行去极化定义
public class HelloService : IHelloService
{
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string Hello(string message)
{
return "hello";
}
}
注意,这两种技术模拟客户端(调用者)
要显式模拟另一个用户,您需要一些p/Invoke。有一个很好的方法可以把一切都整理得很整齐。然后,您可以执行以下操作:
using (new Impersonator("myUsername", "myDomainname", "myPassword"))
{
// do something as myUsername
}