tag route parameter page net form data asp all asp.net iis binding runtime

asp.net - route - tag helpers asp net core



Obtenga enlaces IIS en tiempo de ejecuciĆ³n (3)

Creo que estás buscando acceso a la metabase:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/43a51d34-7c81-413b-9727-ec9a19d0b428.mspx?mfr=true

Me pregunto cómo obtener la configuración de enlace de IIS del sitio actual (nombre de host, puerto, dirección IP) en tiempo de ejecución mediante ASP.NET. ¿.NET proporciona alguna forma de obtener esta información?

Editar: Necesito una forma de configurar los puertos http y https para que se redireccionen al puerto correcto al cambiar de http a https, y viceversa de https a http si se utilizan otros puertos y luego 80/443. ¿Hay alguna manera de hacer esto sin privilegios extendidos?

Saludos


Debería poder lograr esto accediendo a la metabase de IIS, utilizando el ensamblado System.DirectoryServices.

Por ejemplo, aquí puede enumerar a través de todos sus sitios y configuraciones de propiedad contenidas dentro de esos sitios.

Agregue esta referencia a su proyecto:

using System.DirectoryServices

// Assuming your Server Id is 1, and you are connecting to your local IIS. DirectoryEntry de = new DirectoryEntry(@"IIS://localhost/W3SVC/1/Root"); foreach (DirectoryEntry entry in de.Children) { foreach (PropertyValueCollection property in entry.Properties) { Console.WriteLine("Name: {0}, Value {1}",property.PropertyName, property.Value); } }


La única forma de lograr eso (sin ser administrador) es usar Microsoft.Web.Administration. Acabo de escribir un blog rápido sobre cómo hacer eso, ver:
http://blogs.msdn.com/b/carlosag/archive/2011/01/21/get-iis-bindings-at-runtime-without-being-an-administrator.aspx

Básicamente, dado que IIS tiene una característica que llamamos aislamiento del proceso de trabajo, es posible leer la configuración desde una aplicación en sí misma sin necesidad de ser administrador. Si usa ADSI, Metabase o de cualquier otra forma, necesitará ser un administrador.