validar validacion style formularios formulario enviar ejemplos con attribute antes javascript html username

validacion - validar formulario javascript antes de enviar



JavaScript-Cómo obtener el nombre del usuario actual (5)

Me preguntaba cómo obtendría el nombre del usuario actual en JavaScript como parte de un documento HTML.

En Java, uno escribiría System.getProperty("user.name"); lograr esto. ¿Cuál es la alternativa a esto en JavaScript?


Creo que no es posible hacer eso. Sería un gran riesgo de seguridad si un navegador accede a ese tipo de información personal


JavaScript se ejecuta en el contexto del documento HTML actual, por lo que no podrá determinar nada sobre un usuario actual a menos que esté en la página actual o si realiza llamadas AJAX a un script del lado del servidor para obtener más información.

JavaScript no podrá determinar su nombre de usuario de Windows.


No existe una alternativa totalmente compatible en JavaScript, ya que posee un problema de seguridad inseguro para permitir que el código del lado del cliente conozca al usuario que ha iniciado sesión.

Dicho esto, el siguiente código le permitirá obtener el nombre de usuario registrado, pero solo funcionará en Windows, y solo dentro de Internet Explorer, ya que utiliza ActiveX. Además, es muy probable que Internet Explorer muestre una ventana emergente que le alerta sobre los posibles problemas de seguridad asociados con el uso de este código, lo que no ayudará precisamente a la usabilidad.

<!doctype html> <html> <head> <title>Windows Username</title> </head> <body> <script type="text/javascript"> var WinNetwork = new ActiveXObject("WScript.Network"); alert(WinNetwork.UserName); </script> </body> </html>

Como Surreal Dreams sugirió que podría usar AJAX para llamar a un método del lado del servidor que sirve de nuevo el nombre de usuario, o renderizar el HTML con una entrada oculta con un valor del usuario conectado, por ejemplo

(Sintaxis de ASP.NET MVC 3)

<input id="username" type="hidden" value="@User.Identity.Name" />


Si la secuencia de comandos se ejecuta en Microsoft Windows en una HTA o similar, puede hacer esto:

var wshshell=new ActiveXObject("wscript.shell"); var username=wshshell.ExpandEnvironmentStrings("%username%");

De lo contrario, como han señalado otros, no tienes suerte. Esto se considera información privada y el navegador no lo proporciona al motor de JavaScript.


Trabajando para mí en IE:

<script type="text/javascript">
var WinNetwork = new ActiveXObject("WScript.Network");
document.write(WinNetwork.UserName);
</script>

... pero los controles ActiveX deben estar activados en la configuración de seguridad.