对非NON-Local-Admin Windows用户使用模拟时,DLL引用失败并显示“拒绝访问”

时间:2009-03-19 04:36:16

标签: .net wcf security impersonation

我们有使用WCF和模拟的服务。

用户可以使用属于Active Directory系统的凭据登录客户端应用程序。

用户登录是模拟服务端。

当登录的用户在其主机上设置为本地管理员时,此工作正常。

但是当他们是非特权(标准)用户时会出现问题。我们得到一个异常,声明访问被拒绝“我们的DLL之一”。 (它发生在我们所有的DLL上)

1 个答案:

答案 0 :(得分:0)

这实际上是部署环境权限的简单问题。

使用Code Access Security Policy Tool (Caspol.exe)只需要应用正确的权限。 msdn上有一个使用指南。

实际的命令行字符串是

CasPol.exe -addgroup 1 -strong -file D:\ deployment_location \ WcfServiceHost.exe -noname -noversion FullTrust

这是在一系列服务上执行的。由于我们的版本号经常使用“noversion”进行更改很有帮助,因此该服务在我们的设置中也需要FullTrust。

要为各种计算机重新使用此修复程序,请创建PowerShell脚本(或批处理文件)并使用“polchgprompt”参数关闭提示,以便脚本可以在不进行干预的情况下执行。

polchgprompt - “启用或禁用使用可能导致策略更改的选项运行Caspol.exe时显示的提示。”

脚本结构:

CasPol.exe -polchgprompt off

--all the individual service calls--
CasPol.exe -addgroup 1 -strong -file D:\deployment_location\WcfServiceHost.exe -noname -noversion FullTrust
...

CasPol.exe -polchgprompt on