Возможно ли получить IP-адрес вызывающего абонента через HubCallerContext? Или мне придется пройти через HttpContext.Current ... ServerVariables, чтобы получить его?SignalR Получить IP-адрес вызывающего абонента
ответ
Проблема с HttpContext.Request.Current.UserHostAddress
заключается в том, что HttpContext.Request.Current
имеет значение null, если вы являетесь владельцем самостоятельно.
, как вы получите его в текущей версии SignalR приложения («DEV» филиал по состоянию на 12/14/2012), как так:
protected string GetIpAddress()
{
var env = Get<IDictionary<string, object>>(Context.Request.Items, "owin.environment");
if (env == null)
{
return null;
}
var ipAddress = Get<string>(env, "server.RemoteIpAddress");
return ipAddress;
}
private static T Get<T>(IDictionary<string, object> env, string key)
{
object value;
return env.TryGetValue(key, out value) ? (T)value : default(T);
}
Вы использовали, чтобы иметь возможность получить его через Context.ServerVariables
:
protected string GetIpAddress()
{
var ipAddress = Context.ServerVariables["REMOTE_ADDR"];
return ipAddress;
}
Это было намного проще, но они устранили его по причинам, которые я не совсем понимаю.
Предположите, что никто не использует ветвь dev (если явно не указано), поскольку она представляет точку во времени, которая может меняться в любое время между выпуском. – davidfowl
Отмечая это как ответ, так как Owin теперь является в основном частью ASP.NET SignalR. –
Согласно source code нет, такой недвижимости в HubCallerContext нет.
Вы пробовали HttpContext.Request.UserHostAddress? См. Этот пример здесь http://jameschambers.com/blog/continuous-communication-bridging-the-client-and-server-with-signalr
Не думаю, что его вполне, на что вы надеялись, но должны решить проблему, тем не менее.
С SignalR 2.0, Context.Request
больше нет (не то, что я видел) Items
. Я понял, как это работает сейчас. (Вы можете уменьшить, если/еще часть в тройном оператора, если вам это нравится.)
protected string GetIpAddress()
{
string ipAddress;
object tempObject;
Context.Request.Environment.TryGetValue("server.RemoteIpAddress", out tempObject);
if (tempObject != null)
{
ipAddress = (string)tempObject;
}
else
{
ipAddress = "";
}
return ipAddress;
}
Хорошо округленный ответ. В простейшей форме вы можете использовать 'Context.Request.Environment [" server.RemoteIpAddress "]' –
Другой путь
var serverVars = Context.Request.GetHttpContext().Request.ServerVariables;
var Ip = serverVars["REMOTE_ADDR"];
- 1. Получить идентификатор вызывающего абонента
- 2. Получить имя метода вызывающего абонента
- 3. Получить имя метода вызывающего абонента
- 4. SignalR - Dont proceess уведомления от текущего вызывающего абонента в javascript
- 5. Настройка и получение SignalR Свойства вызывающего абонента в vb.net
- 6. SignalR - широковещательная передача для всех клиентов, кроме вызывающего абонента
- 7. Как назвать имя вызывающего абонента, а не номер вызывающего абонента?
- 8. Plivo - Идентификатор вызывающего абонента
- 9. Обнаружение вызывающего абонента
- 10. получить номер вызывающего абонента задатчик на
- 11. noUiSlider получить идентификатор вызывающего абонента слайда
- 12. Как получить имя метода вызывающего абонента
- 13. Получить абсолютный путь к файлу вызывающего абонента
- 14. NSIS получить путь к файлу вызывающего абонента
- 15. Возможно получить связанный экземпляр вызывающего абонента? (Джанго)
- 16. Наследование на рубине Получить имя вызывающего абонента
- 17. VXML DTMF получить ввод от вызывающего абонента
- 18. Как получить идентификатор вызывающего абонента в C#?
- 19. получить код модуля вызывающего абонента в perl
- 20. Как получить имя вызывающего абонента класса?
- 21. Rest - как получить IP-адрес вызывающего абонента
- 22. Java: Как получить имя функции вызывающего абонента
- 23. Nodejs: получить имя функции вызывающего абонента
- 24. PlayFramework Запись имени вызывающего вызывающего абонента
- 25. Twiml получает номер вызывающего абонента
- 26. Идентификатор вызывающего абонента в Plivo
- 27. Javascript Родители функции вызывающего абонента
- 28. Как вернуть вызывающего абонента setOnClickListener?
- 29. Как узнать вызывающего абонента функции
- 30. Android говорит имя вызывающего абонента
Итак, ответ нет? – funGhoul