【问题标题】:"PolicyException: Required permissions cannot be acquired" in Full Trust — can't see why完全信任中的“PolicyException:无法获得所需的权限” - 不明白为什么
【发布时间】:2012-07-20 01:33:21
【问题描述】:

这是一个由两部分组成的问题。

我正在尝试设置我们的生产(实时)托管架构的新部分,因此我试图将我们的暂存网络服务器指向新的生产内容共享(同一子网中另一台服务器上的 UNC 路径) .

我目前正在收到可怕的PolicyException:无法获得所需权限消息。

  • 用户上下文对内容共享的整个层次结构具有修改权限。
  • 我已将 <trust level="Full" originUrl="" /> 添加到 Web.config(我很确定它已经是这种情况了)
  • 我有 run caspol — 见下文
  • 我有 checked the AppPool settings — 身份设置为适当的用户名,加载用户配置文件设置为 True
  • 我刚刚设置了内容共享和 IIS 站点,所以我知道用户名和密码都是同步的(我做了仔细检查)。

更令人困惑的是,抱怨的程序集是我们的内部代码库之一。在ILSpy反编译,可以看到参考

[assembly: SecurityPermission(SecurityAction.RequestMinimum,
   SkipVerification = true)]

,除了我不记得曾在该程序集中添加任何代码访问安全性。引用 Security 的类中没有任何声明性内容,当然也没有引用 AllowPartiallyTrustedCallersAttribute or CodeAccessPermission.Assert

我对所有涉及的服务器(网络服务器和持有内容共享的服务器)拥有完全的管理权限。

那么我该如何解决这个问题呢?

(我们是否可以将question #1846816 变成一个包含所有可能答案的社区维基,而不是阅读无数标题不具描述性且在 Google 上获得太多点击量的问题?;o)


编辑:caspol -a -lg 的(编辑后的)输出如下:

Microsoft (R) .NET Framework CasPol 2.0.50727.4016
Copyright (c) Microsoft Corporation.  All rights reserved.

Security is ON
Execution checking is ON
Policy change prompt is OFF

Level = Enterprise

Code Groups:

1.  All code: FullTrust

Level = Machine

Code Groups:

1.  All code: Nothing
   1.1.  Zone - MyComputer: FullTrust
      1.1.1.  StrongName - [snip]: FullTrust
      1.1.2.  StrongName - [snip]: FullTrust
   1.2.  Zone - Intranet: LocalIntranet
      1.2.1.  All code: Same site Web
      1.2.2.  All code: Same directory FileIO - 'Read, PathDiscovery'
      1.2.3.  Url - file://[some other my UNC share]\*: FullTrust
      1.2.4.  Url - [THIS UNC SHARE]\*: FullTrust
      1.2.5.  Url - [some other my UNC share]:\*: FullTrust
      1.2.6.  Url - file://[THIS UNC SHARE]\*: FullTrust
   1.3.  Zone - Internet: Internet
      1.3.1.  All code: Same site Web
   1.4.  Zone - Untrusted: Nothing
   1.5.  Zone - Trusted: Internet
      1.5.1.  All code: Same site Web

Level = User

Code Groups:

1.  All code: FullTrust
Success

【问题讨论】:

    标签: asp.net iis-7 security code-access-security


    【解决方案1】:

    遇到了类似的问题。请在您的应用程序的web.config 中将<trust level="Full" originUrl="" /> 替换为<trust level="Full" originUrl=".*"></trust>
    注意新信任级别标签中的.*

    【讨论】:

      【解决方案2】:

      找到问题了。

      我不知道为什么,但 Windows 认为有问题的共享位于 Internet 区域,而不是 LocalIntranet

      caspol -pp off -m -ag 1.3 -url "\\servername\web_content\*" FullTrust
      caspol -pp off -m -ag 1.3 -url "file://\\servername\web_content\*" FullTrust
      

      我已经解决了!

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多