2012-07-03 18 views
6

"¿Alguna vez has hecho alguna programación de .net? Sí, bien, aquí hay un programa descompuesto masivo, arréglenlo". Esa es la situación en la que estoy, lo siento si es una pregunta fácil.C# asp.net obteniendo nombre de usuario

El programa en el que estoy trabajando extrae un archivo de un servidor web. Se espera que el usuario ya haya iniciado sesión en el servidor web. Necesito extraer el nombre de usuario de la persona actual registrada en el servidor (o simplemente asegurarme de que alguien haya iniciado sesión en el servidor).

He intentado lo siguiente y devuelve una cadena vacía.

user = HttpContext.Current.User.Identity.Name; 
+3

¿Ha habilitado la autenticación de Windows para la aplicación web en IIS? –

+0

¿Qué devuelve Environment.UserName? La autenticación –

Respuesta

7

Asegúrese de que está configurando la autenticación de Windows en el archivo Web.Config. También puedes ver el siguiente antes de acceder al nombre de usuario,

HttpContext.Current.User.Identity.IsAuthenticated 

Conjunto Web.Config de la siguiente manera,

<authentication mode="Windows"></authentication> 
+0

está actualmente configurada en formularios. ¿Hay mucho peligro en cambiar eso a Windows? babno

+1

+1 pero no necesita cambiar a Windows. Mantenga el modo de autenticación para lo que el sitio ha sido diseñado. (El nombre de usuario también se completará con cualquier otro modo de autenticación, si está conectado) –

+1

Sí. Mantenga el diseño tal como está. Y trate de entender la autenticación de formularios usando el siguiente enlace http://stackoverflow.com/questions/8810496/forms-authentication-understanding-context-user-identity –

0

Las propiedades del objeto User suelen ser poblados por esquema de autenticación de la aplicación (formularios, Windows o personalizada) por lo que deberá asegurarse de que uno de estos esté en su lugar antes de comenzar a acceder al User.

Para obtener más información, eche un vistazo a docs at MSDN.

1

Primera comprobación en Web.config archivo para <authentication> etiqueta. Si no lo encuentra, es posible que su aplicación no esté utilizando ningún mecanismo de autenticación estándar. Si ese es el caso, busque dentro del login.aspx o cualquier código que haga la autenticación. Allí obtendrá los datos de usuario registrados.

No le recomendaría que cambie nada en el archivo web.config sin tener una idea clara de lo que sucede en la aplicación.

Cuestiones relacionadas