2

.NET アプリを実行しようとすると、「許可されているグループは 1 つだけ」であるため、「PolicyException」がスローされます。ツールは既存の設定を一覧表示し、選択した設定を削除できるようにする必要があります。リストに caspol を使用するのは役に立たず、残酷です。

新しい設定を定義できる単純な gui フロントエンドがあることを見てきましたが、既存の設定を一覧表示または削除することはできません。

Caspol は悪夢です。誰もが選択して使用しているのも不思議ではありません。.NET 1.1 では Microsoft が構成ユーティリティを提供しましたが、.NET 2.0 については何も見つかりませんでした。

4

4 に答える 4

1

次のコードを使用して、独自のツール (GUI またはコマンドライン) を実行できます。

static void SetPermission( string target ) {
    try {
        // Find the machine policy level
        PolicyLevel machinePolicyLevel = null;
        System.Collections.IEnumerator policyHierarchy = SecurityManager.PolicyHierarchy();

        while ( policyHierarchy.MoveNext() ) {
            PolicyLevel level = (PolicyLevel)policyHierarchy.Current;
            if ( level.Label == "Machine" ) {
                machinePolicyLevel = level;
                break;
            }
        }


        if ( machinePolicyLevel == null ) {
            throw new ApplicationException(
                "Could not find Machine Policy level. Code Access Security " +
                "is not configured for this application."
                );
        }

        // Create a new FullTrust permission set
        PermissionSet permissionSet = new NamedPermissionSet( "FullTrust" );

        IMembershipCondition membershipCondition = new UrlMembershipCondition( target );

        // Create the code group
        PolicyStatement policyStatement = new PolicyStatement( permissionSet );
        CodeGroup codeGroup = new UnionCodeGroup( membershipCondition, policyStatement );
        codeGroup.Description = "Custom code group created by PermSet utility.";
        codeGroup.Name = "CustomCodeGroup-" + Guid.NewGuid().ToString();

        // Add the code group
        machinePolicyLevel.RootCodeGroup.AddChild( codeGroup );

        // Save changes
        SecurityManager.SavePolicy();
    }
    catch ( Exception ex ) {
        Console.WriteLine();
        Console.WriteLine( ex.ToString() );
        throw;
    }
}
于 2010-06-08T14:48:40.813 に答える
1

2.0 用の構成アプレットもあります。2.0 SDK に付属していると思います。インストールされている場合は、Admin Tools「Microsoft .NET Framework 2.0 Configuration」という名前になっている必要があります。

于 2010-06-08T14:45:59.793 に答える
0

MsCorCfg は、Visual Studio の以降のリリースでは利用できないようです。私は 2010 を持っていますが、このファイルを見つけることができませんでした。

于 2010-07-15T19:33:59.053 に答える
0

このユーティリティは、.Net 2.0のSDKの一部です。インストールされていることを確認してください。

また、.Net 3.5 sp1 以降では、CAS の問題点がいくつか解消されたことに興味があるかもしれません。

于 2010-06-08T14:48:12.807 に答える