Tengo una aplicación que se comporta de manera extraña, y solo para verificar, me gustaría ver en qué zona de seguridad se está ejecutando actualmente.¿Obtiene la zona de seguridad actual/activa de una aplicación .NET?
He encontrado el System.Security.SecurityZone enum, pero parece que no puedo encontrar nada que me indique con cuál de estos me estoy ejecutando.
¿Alguien tiene alguna sugerencia?
Básicamente quiero saber si mi aplicación se ejecuta en Mi PC, Intranet, Internet, no es de confianza, de confianza, etc.
Editar: Aquí está la prueba de aplicación menor que escribí para encontrar este código, gracias a @blowdart.
using System;
using System.Reflection;
namespace zone_check
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(".NET version: " + Environment.Version);
foreach (Object ev in Assembly.GetExecutingAssembly().Evidence)
{
if (ev is System.Security.Policy.Zone)
{
System.Security.Policy.Zone zone = (System.Security.Policy.Zone)ev;
Console.WriteLine("Security zone: " + zone.SecurityZone);
break;
}
}
}
}
}
Niceness, gracias, voy a pegar el código final aquí para referencia futura. –
De nada. Por supuesto, en la vida real no tendrías que hacer esto, estarías haciendo demandas de CAS y actuando en consecuencia :) – blowdart