代码之家  ›  专栏  ›  技术社区  ›  Nick Josevski

当对非本地管理Windows用户使用模拟时,dll引用失败,并显示“拒绝访问”

  •  0
  • Nick Josevski  · 技术社区  · 17 年前

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

    用户可以使用作为Active Directory系统一部分的凭据登录到客户端应用程序。

    用户登录是模拟的服务端。

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

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

    1 回复  |  直到 17 年前
        1
  •  0
  •   Nick Josevski    17 年前

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

    使用 Code Access Security Policy Tool (Caspol.exe) 这只是应用正确权限的问题。有一个如何使用指南 msdn .

    实际的命令行字符串是

    caspol.exe-addgroup 1-strong-file d:\deployment\wcfservicehost.exe-noname-noversion fulltrust

    这是在一组服务上执行的。由于我们的版本号经常更改,使用“noversion”很有帮助,因此该服务还需要完全信任我们的设置。

    要对各种计算机重新使用修复程序,请创建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