domingo, 12 de febrero de 2012

Comic, proximamente

Dra Elisa:










iGus:



miércoles, 8 de febrero de 2012

Identificar UserName de Windows del cliente (IIS, C#, ASP.Net)

El día de hoy planteo un problema que quizá no sea muy común, el hecho es que, si tu tienes un WebSite, y por alguna razón medio extraña quizá quieres conocer el UserName del cliente, debes confugurar tu web site de una manera particular para poder realizarlo (por medio del web.config).


Quizá sonará extraño, pero imaginen, quizá tu quieres agregarle dinamismo a tu web site, quieres que el usuario no tenga que loguearse nunca más, que con el sólo hecho de conectarse a tu web site, pueda accesar a todo (suena algo inseguro, sin duda podría serlo), con el simple hecho de entrar desde su maquina, para esto, primero tendrías que reconocer el usuario que existe en su maquina, y quizá su dominio. Lo anterior no suena muy lógico para web sites colgados en un servidor en la internet, pero para servidores que sólo trabajan en LAN o WAN dentro de una empresa esto es muy útil, ya que tienes un único dominio y los usuarios (usernames) nunca se repiten, y cada persona sólo puede loguearse en su propia máquina, o quizá en otra pero creando forzosamente una nueva cuenta en la misma.


Bien, para obtener acceso a estos datos necesitamos únicamente el HttpContext:

Request.ServerVariables["LOGON_USER"]


Ahora imagina que tienes una Label por ahi llamada Label1, observa todo lo que puedes obtener del cliente con el codigo siguiente:


for (int i = 0; i < HttpContext.Current.Request.ServerVariables.Count; i++)
        {
            this.Label1.Text += HttpContext.Current.Request.ServerVariables.Keys[i];
            this.Label1.Text += " :";
            this.Label1.Text += HttpContext.Current.Request.ServerVariables[i];
            this.Label1.Text += "<br />";
        }
Pero por supuesto, para poder hacer que esto no regrese cadenas vacías necesitas configurar de manera adecuada el web.config. Abre tu Web.config e ingresa o cambia las siguiente etiquetas, según el caso:


<authentication mode="Windows"/>

    <authorization>
      <deny users="?"/> <!--Acceso denegado a usuarios anónimos-->
    </authorization>




Te interesará: http://hzsquare.blogspot.com/2011/12/crear-website-con-iis-70-y-aspnet-40.html




Fuente: 


http://support.microsoft.com/kb/306359/es




Etiquetas:
  • LOGON_USER, REMOTE_USER, AUTH_USER Aparece vacío
  • Reconocer UserName de Windows del cliente
  • Conocer UserName del cliente
  • username del cliente
  • <authentication mode="Windows"/>
  • Reconocer login del cliente
  • Reconocer username, c#

miércoles, 25 de enero de 2012

Instalar servidor de ASP.Net Ubuntu para Mono Develop

Deseguro te habrá salido un error que decía algo así:

MonoDevelop.Core.UserException: The "xsp4" web server cannot be started. Please ensure that it is installed.

Al intentar correr tu website con Mono.

Es porque no tienes instalado el server para debug, para esto, abre una terminal y teclea:

sudo apt-get install mono-xsp

Fuente:

domingo, 8 de enero de 2012

Error ASP.NET, enableEventValidation

Error:

Argumento de devolución o de devolución de llamadas no válido. La validación de eventos se habilita usando <pages enableEventValidation="true"/> en la configuración o <%@ Page EnableEventValidation="true" %> en una página. Por motivos de seguridad, esta característica comprueba que los argumentos pasados a eventos de devolución o de devolución de llamadas se origina desde el control del servidor que inicialmente los procesó. Si los datos son válidos y son los que se esperaba, utilice el método ClientScriptManager.RegisterForEventValidation para registrar los datos de devolución o de devolución de llamadas para su validación.

Este error es común para aquellos programadores que gustan de hacer cosas con javascript y .Net a la vez, justificado está el uso de estas dos tecnologías en conjunto, crean cosas fabulosas.


Bien, este error ocurre cuando se ejecuta algún script (pudiera ser javascript) provocado por algún control asp, que no haya sido controlado directamente por el servidor. Esto es por ejemplo, imagina que tenemos esto:

<asp:DropDownList ID="DropDownList_Region" onchange="LlenaPlanta();" runat="server"></asp:DropDownList>



Como observamos este posee un evento Javascript llamado "LlenaPlanta();", pero el control corre en el servidor (runat="server"), cuando seleccionemos algo de la DropDownList se ejecutará el evento LlenaPlanta() en el cliente cuantas veces se haga, el problema es cuando ocurre un PostBack por cualquier motivo, el server detecta que se han ejectado eventos en el control DropDownList_Region y que no han sido controlados por éste y por tanto manda un error. Esto para prevenir que cualquier tipo quiera hacer un postback en nuestra web y mandar datos no permitidos por post o get.


Bueno, lo más rápido pero menos recomendable es desactivar la protección, aunque lo recomendable es no hacerlo, aquí colocaré la manera de desactivarla:


Desactivar EventValidation

  1. Entra a Web.config
  2. Busca la etiqueta <pages>
  3. Agrega los siguientes atributos de tal manera que quede así: <pages enableEventValidation="false" validateRequest="false">



El error de validación no debería aparecer pero tu Web quedará menos segura que ayer, ;).


=)

Fuentes: