Limitare l'accesso a metodi di una classe

Avvolte può essere necessario utilizzare determinate procedure solo se si è ad esempio amministratori del sistema.

L'oggetto PrincipalPermissionAttribute può essere utilizzato per richiedere che l'utilizzo di una classe o un metodo in essa possa essere utilizzato solo da che dispongano di un ruolo specifico o siano stati autenticati. Esempio:

using System;

using System.Security;

using System.Threading;

using System.Security.Permissions;

using System.Security.Principal;

namespace ClassPermission

{

public class Class1

{

static void Main(string[] args)

{

Thread.GetDomain().SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

try

{

ClassSicurezza.MethodA();

}

catch (SecurityException ex)

{

Console.WriteLine("Non sei autorizzato ad accedere al metodo MethodA! Cambia il Ruolo.");

Console.WriteLine(ex.Message);

}

try

{

ClassSicurezza.MethodB();

}

catch (SecurityException ex)

{

Console.WriteLine("Non sei autorizzato ad accedere al metodo MethodB! Cambia il Ruolo.");

Console.WriteLine(ex.Message);

}

Console.ReadLine();

}

}

class ClassSicurezza

{

// Può essere chiamata solo dal gruppo amministartore

[PrincipalPermissionAttribute(SecurityAction.Demand,

 Role=@"BUILTIN\Administrators")]

public static void MethodA()

{

Console.WriteLine("OK! Sei l'utente! UseName: " +

Thread.CurrentPrincipal.Identity.Name + " MethodA Chiamato!");

}

[PrincipalPermissionAttribute(SecurityAction.Demand,

 Role=@"BUILTIN\User")]

public static void MethodB()

{

Console.WriteLine("OK! Sei l'utente! UseName: " +

Thread.CurrentPrincipal.Identity.Name + " MethodB Chiamato!");

}

}

}

 

 

Nella stessa categoria
    Nessuna risorsa collegata

    Commenti

    Aggiungi un nuovo commento »»»
    Per inserire un commento, devi registrarti alla nostra community.


    TagCloud
    BLOG INFO
    • Post: 26
    • Commenti: 5
    • TrackBacks: 2
    • Feed blog e contenuti tecnici: RSS
    • Feed blog: RSS Atom OPML
    CATEGORIE
    I PIÙ LETTI DEL MESE
    IN EVIDENZA