Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
теперь его
HttpContext.Connection.IsLocal
, и если вам нужно проверить это вне контроллера, тогда вы берете зависимость от IHttpContextAccessor
, чтобы получить к нему доступ.
Обновление основано на комментарии:
HttpContext
изначально доступно в представлениях
@if (Context.Connection.IsLocal)
{
}
Ничто из вышеперечисленного не помогло мне.
Url.IsLocalUrl работает совсем по-другому, и я считаю его немного бесполезным:
Например, следующие URL-адреса считаются локальными:
/Views/Default/Index.html
~/Index.html
Следующие URL не являются локальными:
../Index.html
http://www.contoso.com/
http://localhost/Index.html
HttpContext.Connection.IsLocal
не существует в .Net Core 2.2
Сравнение ControllerContext.HttpContext.Connection.RemoteIpAddress
и ControllerContext.HttpContext.Connection.LocalIpAddress
также не работает в мой тест, потому что я получаю ":: 1" для удаленного IP и "127.0.0.1" для локального IP.
Наконец, я использовал этот кусок:
IPAddress addr = System.Net.IPAddress.Parse( HttpContext.Connection.RemoteIpAddress.ToString() );
if (System.Net.IPAddress.IsLoopback(addr) )
{
//do something
}