net name empty current asp asp.net iis-7 windows-authentication

asp.net - name - HttpContext.Current.User es nulo a pesar de que la autenticación de Windows está activada



httpcontext current user identity name is empty (4)

Con IIS 7 y asp.net 4.0, el usuario seguía siendo nulo dentro de Application_AuthenticateRequest () (remitente del objeto, EventArgs e) . Tuve que colocar toda la lógica de autenticación dentro de Application_PostAuthenticateRequest () (remitente del objeto, EventArgs e). Puede ver un ejemplo aquí context-user-is-null-in-application-authenticaterequest-via-windows-auth-in-asp

En IIS7 bajo Windows Server 2008, tengo un directorio virtual con acceso anónimo desactivado y autenticación de Windows activada. En mi web.config, tengo:

<authentication mode="Windows"/> <authorization> <allow roles="MYGROUP"/> <deny users="*"/> </authorization>

y

<system.webServer> <!-- IIS7 security settings --> <security> <authorization> <add accessType="Deny" users="*"/> <add accessType="Allow" roles="MYGROUP"/> </authorization> </security> </system.webServer>

Sin embargo, cuando accedo a default.aspx desde IE y establezco un punto de interrupción en Global.asax.vb Application_AuthenticateRequest (), obtengo un HttpContext.Current.Uurridor nulo donde espero mi propia identidad. Es casi como si el acceso anónimo estuviera activado?

¿Qué puedo hacer para solucionar esto? Todo parece funcionar en IIS6.


El acceso anónimo debe estar activado si no utiliza ssl o algo de su propia seguridad.


II7 tiene autenticación integrada. Puede volver a establecerlo en el tipo anterior cambiando el Grupo de aplicaciones a clásico en la configuración básica de IIS.

* Precaución: esto es solo una explicación y un ejemplo, es posible que desee utilizar la autenticación integrada y hacer algo diferente.


La respuesta de volver a mover el Grupo de aplicaciones a la clásica es solo retrasar el problema.

En su lugar, deje el grupo de aplicaciones solo y mueva su comprobación de autenticación de Application_AuthenticateRequest() , a la siguiente función en la canalización:

Application_AuthorizeRequest(object sender, EventArgs e)

Para entonces, el grupo de aplicaciones integrado ha completado la autenticación de Windows que le permite no recibir un null de HttpContext.Current.User .

El oleoducto se puede encontrar here (enlace proporcionado por CarlosAg).

Se puede encontrar una visualización de la tubería en la página del ciclo de vida del mensaje del sitio web de asp . En la sección del controlador, verifique los dos cuadros verdes "Filtros de autenticación" y "Filtros de autorización". Estas son las áreas con las que te estás metiendo.