我需要编写一个WCF服务,该服务将使用VBA代码中的Service Moniker从MS Excel调用。到目前为止,我已经想到了这一部分。
我也有模拟工作,所以如果我从Web方法返回当前用户,它将返回我的用户名而不是IIS \ DefaultAppPool或任何IIS正在运行...
所以这是我的问题。我有第三方dll“CyberArk密码管理,如果有人有兴趣”我在哪里创建一个PWD对象,设置一些参数,然后调用一个名为Getpassword的方法。现在我可以调用该方法,但我总是会遇到验证失败。如果我深入研究我运行的CyberArk代理的日志,似乎即使我使用模拟,dll方法仍被称为IIS \ DefaultAppPool
以下是几个片段......
模拟方法
启用模拟[OperationBehavior(Impersonation = ImpersonationOption.Required)]
对此方法的调用会返回我期望的域名和用户名
WindowsIdentity.GetCurrent().Name
但是这一行被称为IIS \ DefaultAppPool
password = PasswordSDK.GetPassword(passRequest);
我尝试在代码中进行模拟,而不是使用Annotaion,我也尝试过使用bolck的模拟对象,似乎没有任何工作,所以这就是我的想法。
dll不知何故不允许我出于安全原因冒充来电者
出于安全原因,可能是.NET框架不再允许这样做
我不知道并希望得到一些帮助: - )