【问题标题】:Win 7 Request for the permission of type 'System.Security.Permissions.SecurityPermission failedWin 7 请求“System.Security.Permissions.SecurityPermission”类型的权限失败
【发布时间】:2011-07-31 03:27:27
【问题描述】:

我有一个 dll,它从用 asp.net 编写的 Intranet Web 应用程序访问本地计算机上的扫描仪。 dll 在使用 caspol 的本地计算机上获得完全信任。在 Win XP 上一切正常,但在 Win 7 上却不行。

代码是:

            PermissionSet ps = new PermissionSet(PermissionState.Unrestricted);
        ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.AllFlags));
        ps.Assert();


wiaDevMgr = new DeviceManager();
            foreach (DeviceInfo di in wiaDevMgr.DeviceInfos) {

DeviceInfos 的请求抛出以下错误:

Exception: Acquire from WIA failed Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

我已经使用 caspol 检查了实际权限 - 相关区域的条目是:

   1.2.  Zone - Intranet: FullTrust
  1.2.1.  All code: Same site Web
  1.2.2.  All code: Same directory FileIO - 'Read, PathDiscovery'
  1.2.3.  Url - http://srvr/tpc/pictureConverter.dll: FullTrust
  1.2.4.  Url - http://srvr/tpc/printUniformities.dll: FullTrust
  1.2.5.  Url - http://srvr/tpc/WiaOneScan.dll: FullTrust
  1.2.6.  Url - http://srvr/tpc/DocPrint.dll: FullTrust
  1.2.7.  Url - http://srvr/tpc/FileAdmin.dll: FullTrust
  1.2.8.  Url - http://srvr/tpc/Interop.ImageMagickObject.dll: FullTrust
  1.2.9.  Url - http://srvr/tpc/Interop.WIALib.dll: FullTrust

相关的 dll 是 WiaOneScan.dll

感谢您的任何想法。

【问题讨论】:

    标签: asp.net security windows-7 permission-denied


    【解决方案1】:

    终于解决了。使用 PermCalc.exe 获取 dll 所需的权限列表。

    PermissionSet ps = new PermissionSet(PermissionState.Unrestricted); ReflectionPermission rp = new ReflectionPermission(PermissionState.Unrestricted); rp.Flags = ReflectionPermissionFlag.AllFlags; ps.AddPermission(rp); SecurityPermission sp = new SecurityPermission(PermissionState.Unrestricted); sp.Flags = SecurityPermissionFlag.AllFlags; ps.AddPermission(sp); KeyContainerPermission kc = new KeyContainerPermission(KeyContainerPermissionFlags.AllFlags); ps.AddPermission(kc); ps.Assert();

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多