2010-04-05 1 views
0

Мы пытаемся реализовать собственное решение для Growl для Windows. Мы сообщаем клиенту Growl подписываться на уведомления с нашего сервера. Затем сервер получает сообщение от клиента через GNTP (протокол обмена Growl). Мы требуем имя пользователя, зарегистрированного на клиентской машине, чтобы выполнять поиск базы данных. GNTP не предоставляет эту информацию.Получить пользователя домена из IPAddress или Hostname в .Net

Итак, у нас есть подключенный клиентский сокет (и, следовательно, IP-адрес) и сообщение от этого клиента, содержащее его имя машины.

Есть ли какой-либо возможный способ определить имя пользователя, зарегистрированного на указанном компьютере? У нас есть доступ к службам домена Windows.

+0

После еще некоторого поиска, то ясно, что это ISN Это действительно выполнимо. Есть ли способ сделать обратное? Получить IP или хост, учитывая имя пользователя? – Anthony

+0

Просто чтобы держать вас на пути: Да, должно быть что-то подобное - я видел его у клиента. Дайте имя пользователя, и вы получите последние логины с именами машин, которые вы можете разрешить для адресов. Но я _think_ они делают это с глобальным сценарием входа в систему. Можете ли вы сделать что-то подобное? Сценарий входа в систему, который вызывает http: // yourserver/Login? Id = CurrentUser или что-то еще? –

+1

Почему бы не отправить клиенту идентификатор пользователя? – ig0774

ответ

0

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

0

Это даст вам домен Windows, и текущий пользователь (если это то, что вы после этого)

использованием System.Security.Principal;

 if (WindowsIdentity.GetCurrent().IsAuthenticated) 
     { 
      string Result = WindowsIdentity.GetCurrent().Name;