2016-08-02 4 views
2

Как получить имя компьютера клиента из WCF asmx C#?Как получить имя компьютера клиента из WCF asmx C#?

Я пробовал этот способ, но он вообще не работает.

  1. Это лучшее решение, которое я думал, но это не работает ... хорошо результат вернуть имя компьютера Клиента, но иногда она возвращает имя компьютера А и иногда это имя компьютера B .

    string[] computer_name = System.Net.Dns.GetHostEntry(
        HttpContext.Current.Request.ServerVariables["remote_addr"]) 
        .HostName.Split(new Char[] { '.' }); 
    logData.ComputerName = computer_name[0].ToString(); 
    
  2. В результате компьютерное имя из WCF не является клиентом.

    System.Environment.MachineName 
    
  3. Тот же результат, как 1, но возвращает Empty то.

    System.Net.Dns.GetHostByName("LocalHost").HostName. 
    
  4. Возвращает Null.

    OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name 
    
  5. Return IP, IP и пользователь клиента

    loginRequest.ServerVariables["remote_addr"], 
    Request.ServerVariables["remote_host"], 
    Request.ServerVariables["remote_user"] 
    
+0

Является ли клиент-машина в той же сети, что и клиентская машина? –

+0

Проверьте эту ссылку, если это поможет - http://stackoverflow.com/questions/5034660/how-to-retrieve-the-clients-machine-name-from-within-a-wcf-operation-contract – Neeraj

+0

Это * может * быть выполнимым в контексте интрасети. Невозможно в Интернете. В каком контексте вы работаете и что вы планируете делать с этой информацией *? –

ответ

1

Вы можете включить WCF службу для доступа контекст HTTP ASP.Net и получить адрес из контекста:

<system.serviceModel>    
     <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
... 
</system.serviceModel> 

После этого вы сможете получить доступ к HttpContext.Current.Request.UserHostAddress property получить информацию об источнике

+0

Спасибо, что так много, Алекс, давай попробуем :) –

+0

Куда я должен нажимать ваш код? Это web.config? Это мой web.config код ..... <конфигурация> \t \t \t \t \t <компиляции отлаживать =» true "targetFramework =" 4.0 "> \t \t <Режим проверки подлинности =" Формы "/> \t \t \t \t \t \t \t \t \t <удалить имя =" HttpSoap12" /> \t \t \t \t \t \t \t

+0

@OffThanapol см. Https://msdn.microsoft.com/en-us/library/ms731354(v=vs.110).aspx – Alex

 Смежные вопросы

  • Нет связанных вопросов^_^