2012-10-09 29 views
6

Estoy usando autenticación de formularios y lanzando un sitio desde Visual Studio 2010. Está utilizando el Servidor de Desarrollo de Visual Studio (web) y no IIS. El web.config tiene:¿Por qué el usuario web se autentica a través de NTLM?

<authenticaion mode="Forms"> 
    <forms name=".MyApp" protection="All" cookieless="UseCookies"/> 
</authentication> 

La página de inicio de sesión utiliza el control de inicio de sesión de ASP.NET. Antes de que el usuario se conecta, puedo ver lo siguiente:

HttpContext.Current.Request.LogonUserIdentity.AuthenticationType == "NTLM" 
HttpContext.Current.User.Identity == System.Security.Principal.GenericIdentity 
HttpContext.Current.User.Identity.AuthenticationType == "NTLM" 

Este usuario parece estar autenticado como usuario del sistema local y no un usuario de la web. ¿Esto no significa que el usuario siempre estará autenticado, independientemente de si inició sesión en el sitio o no?

¿Cómo es un usuario web NTLM?

+0

¿Cómo es tu configuración de autenticación en IIS? – Erix

+0

'Request.LogonUserIdentity' representa cómo se está ejecutando IIS. –

+0

@Erix: Como se mencionó anteriormente, no estoy usando IIS. – 4thSpace

Respuesta

2

Por lo que sé, cassini does no es compatible con la autenticación de Windows.

Se ejecuta como una cuenta del sistema local y eso es lo que ve como NTLM autenticado.

Si está desarrollando/depurando funciones de seguridad para una aplicación Asp.Net (o WCF), recomiendo encarecidamente que implemente en IIS.

+0

Ustedes (y @EdSF) publicaron buenas respuestas similares. No estoy seguro de a quién aceptar. – 4thSpace

1

Si no me equivoco, está viendo yourself como el User (autenticándose) ejecutando Visual Studio (en su contexto de usuario) cuando está depurando con VS y su servidor de desarrollo.

Visual Studio se ejecuta en el contexto de la cuenta (usuario de Windows/permisos, etc.) - Request.LogonUserIdentity.User

No debería afectar a su depuración de Web Forms/autenticación de formularios. Después del inicio de sesión con autenticación de formularios, puede obtener HttpContext.User.Identity.Name del "usuario de autenticación de formularios" (usuario web).

Cuestiones relacionadas