0

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

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

用户登录是模拟服务端。

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

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

4

1 回答 1

0

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

使用代码访问安全策略工具 (Caspol.exe)只需应用正确的权限即可。msdn上有一个使用指南。

实际的命令行字符串是

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

这是在一组服务上执行的。由于我们的版本号经常更改,使用“更新”很有帮助,该服务还需要在我们的设置中使用 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
于 2009-06-25T11:41:26.883 回答