"完全信任"中的"PolicyException:无法获取所需权限 - 无法查看原因

Owe*_*ker 1 asp.net security iis-7 code-access-security

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

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

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

  • 用户上下文具有对内容共享的完整层次结构的修改权限.
  • 我已经添加<trust level="Full" originUrl="" />到Web.config(我很确定它已经是这样了,不管怎么说)
  • 跑了caspol - 见下文
  • 检查了AppPool设置 - 标识设置为相应的用户名,加载用户配置文件设置为True
  • 我只是设置了内容共享和IIS站点,所以我知道用户名和密码都是同步的(我做了仔细检查).

更令人困惑的是,抱怨的程序集是我们的内部代码库之一.在ILSpy中对它进行反编译,我可以看到对它的引用

[assembly: SecurityPermission(SecurityAction.RequestMinimum,
   SkipVerification = true)]
Run Code Online (Sandbox Code Playgroud)

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

我对所涉及的所有服务器(包括Web服务器和保存内容共享的服务器)具有完全管理访问权限.

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

(我们是否可以将问题#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
Run Code Online (Sandbox Code Playgroud)

omb*_*iro 5

有类似的问题.请更换<trust level="Full" originUrl="" /><trust level="Full" originUrl=".*"></trust>web.config您的应用程序.
请注意.*新的信任级别标记.