0

asp.netで記述されたイントラネットWebアプリケーションからローカルマシンのスキャナーにアクセスするdllがあります。dllは、caspolを使用してローカルマシンで完全な信頼を与えられます。Win XPではすべてが正常に機能しましたが、Win7では機能しませんでした。

コードは次のとおりです。

            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の場合

アイデアをありがとう。

4

1 に答える 1

1

最後にそれを解決しました。PermCalc.exe を使用して、dll に必要なアクセス許可のリストを取得しました。

            PermissionSet ps = 新しい PermissionSet(PermissionState.Unrestricted);
            ReflectionPermission rp = 新しい 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();

于 2011-06-29T16:45:56.093 に答える