jueves, 9 de diciembre de 2010

Como obtener el user host en SharePoint

Buenas noticias, esto es mas fácil para SharePoint que para los usuarios de ASP.Net. debido a la clase SPSecurity.

Las alternativas para obtener el Remote Host están:

Variables de Servidor:

Page.Request.ServerVariables["REMOTE_HOST"];

En ASP.NET:

Request.UserHostName

A través de el espacio de nombre System.Net

Dns.GetHostEntry()

Pero ninguno funcionaba en mi NAT creada por VMWare y en eso recordé que podría ser problemas de permisos e intente el siguiente código que finalmente me dio la solución:

string hostName = null;
SPSecurity.RunWithElevatedPrivileges(delegate
{
      IPHostEntry hostInfo = new IPHostEntry();
      hostInfo =   Dns.GetHostEntryPage.Request.UserHostAddress);
         hostName = hostInfo.HostName;
  });
return hostName;
    

Obtener la IP es mucho mas fácil para los que se preguntan como:

Variables de Servidor:

Page.Request.ServerVariables["REMOTE_ADDR"];

En ASP.NET:

Request.UserHostAddress

Y en el case de Request.UserHostName no lo puede resolver devuelve el Remote Address que esto me sucedia cuando no ejecutaba con los privilegios necesarios el código.

Este escenario funciona correctamente en una Intranet, en Internet pueda que no de los resultados deseados debido a la complejidad de configuraciones que pueda encontrarse.

HostName4Fun!,

Manolo Herrera

No hay comentarios.: