Raja Ganapathy Ответов: 2

Как получить имя системы с помощью C#?


Я хочу реализовать единый вход для своего приложения
Я хочу получить текущее имя пользователя ПК с помощью asp.net с#

Я размещаю свое приложение на сервере.

Что я уже пробовал:

Я использую приведенные ниже коды, но функция получить имя пользователя серверного ПК я хочу получить имя пользователя текущего ПК как это сделать?

string username = System.Environment.MachineName;

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

2 Ответов

Рейтинг:
0

OriginalGriff

Ты не можешь.
Вы можете получить только системное имя сервера - именно там работает ваш код C# - вы не можете получить доступ к деталям клиентской системы по соображениям безопасности, клиентский браузер не позволит этого.


Raja Ganapathy

Если вообще возможно это сделать . :(

OriginalGriff

Нет-вот что значит "по соображениям безопасности"! :смеяться:
Вам придется сделать это на стороне сервера через вашу базу данных, записывая логин и выход для пользователя, чтобы предотвратить двойной вход - но не забудьте предусмотреть механизм, когда пользователь выключает компьютер без выхода из системы!

Richard Deeming

Если ваши пользователи являются частью того же домена Active Directory, что и ваш сервер, поэтому вы можете включить проверку подлинности Windows. При правильных настройках браузер автоматически войдет в систему, и Context.User вернет их имя пользователя Windows.

Но если вы пользователи не часть того же домена, нет никакого (законный*) способ получить их верительные грамоты.

* Вы вероятно найдите уязвимую уязвимость системы безопасности, которая позволит вам эксфильтрировать эту информацию в некоторых ограниченных обстоятельствах. Но это было бы ни этично, ни законно, и уязвимость, скорее всего, будет исправлена довольно быстро.

Рейтинг:
0

#realJSOP

Вы можете сделать это, если сможете убедить пользователя удаленной машины установить программное обеспечение, реализующее службу WCF. Это не очень вероятно, хотя бывает.