Как получить имя пользователя в моем веб-приложении для внутренней сети в сети Windows
У меня есть простая внутренняя HTML-страница, которая просто отображает форму и просит пользователя заполнить ее. Я хочу автоматически записать имя пользователя домена Windows и имя компьютера, чтобы отправить его вместе с данными, собранными в форме.
Могу ли я сделать это на стороне клиента? HTML? JavaScript? Или я вынужден сделать это на стороне сервера (что я пока не знаю, как это сделать)
Пользователи имеют XP и 7 машин и IE7,8.
Кстати, я нашел эту статью, но я должен признаться, я не знаю, где на странице вы могли бы ввести этот "код".
Вот код, который я использую, который не работает. Вызывает функцию JavaScript и отображает "Username="
и в следующей строке "Done."
, но не отображает имя пользователя.
И если использовать Chrome, он отображает <%HttpContext.Current.User.Identity.Name%>
,
<html lang="en">
<head>
<script>
function get_user_Name() {
var username = '<%HttpContext.Current.User.Identity.Name%>';
document.write("Username=");
document.write(username);
document.write(" <br> Done.");
}
</script>
<meta charset="utf-8" />
<title>Training and Development Site</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
</head>
<body>
<a href="add-number-to-dnc.html">Add Phone Number to Dialer Do Not Call list</a>
<br><br>
<button type="button" onclick="get_user_Name()">Display User Name</button>
</body>
</html>
Также - я использую WebMatrix / IIS7 Express
2 ответа
Используя только javascript на сервере без IIS, это невозможно.
Тем не мение:
Если вы используете IIS, вы можете использовать следующие JS:
<script language="javascript">
var username = '<%HttpContext.Current.User.Identity.Name %>';
</script>
Предполагая, что вы включили проверку подлинности Windows в IIS для своего сайта, а затем на стороне C#:
C#
public string user_Name
{
get
{
string x = Page.User.Identity.Name;
x = x.Replace("YOURDOMAIN\\", "");
return x;
}
}
x = x.Replace("DOMAIN\\", "");
удаляет раздел DOMAIN учетной записи пользователя, например, NISSAN\rmcdonough
Захватывая имя пользователя домена windows и имя машины, я думаю, что мы не можем