Come si fa a controllare se si esegue in ambiente Medium Trust in .NET?
-
21-09-2019 - |
Domanda
Sono in esecuzione di un sito web in hosting condiviso a GoDaddy (non la mia scelta, perché è sempre Medium Trust), e ho alcune caratteristiche avanzate che vorrei accendere se l'applicazione viene eseguita in High Trust.
Quindi, vorrei sapere, se c'è un modo per verificare se in fase di esecuzione se l'applicazione è in esecuzione nell'ambiente Medium Trust in .NET?
Soluzione
Si potrebbe provare il seguente codice:
if (!SecurityManager.IsGranted(new RegistryPermission(PermissionState.Unrestricted)))
{
//do something.... not at full trust
}
if (!SecurityManager.IsGranted(new DnsPermission(PermissionState.Unrestricted)))
{
//do something.... not at full trust
}
ho ottenuto questo dal seguente link: http://www.netomatix.com/development/webcaspermissions.aspx
Ecco i link per le classi di autorizzazione Security Manager e del Registro di sistema in MSDN:
http://msdn.microsoft.com /en-us/library/system.security.securitymanager.isgranted.aspx http://msdn.microsoft.com/en- us / library / system.security.permissions.registrypermission.aspx
È necessario aggiungere un riferimento a System.Security e aggiungere un paio di utilizzando le istruzioni per System.Security e System.Security.Permissions.
EDIT:
Aggiunto dopo Commento di Nick:
Si potrebbe provare direttamente per il livello di sicurezza asp.net:
if (SecurityManager.IsGranted( new AspNetHostingPermission(AspNetHostingPermissionLevel.Medium)))
{Response.Write("Medium Trust level");}