Как я преобразовываю HttpRequestBase в объект HttpRequest?

Если бы необходимо сделать это правильно, я предложил бы смотреть на реализации микшера программного обеспечения с открытым исходным кодом, по крайней мере, для теории.

Некоторые ссылки:

Смелость

GStreamer

На самом деле необходимо, вероятно, пользоваться библиотекой.

84
задан Pure.Krome 21 September 2009 в 01:28
поделиться

4 ответа

Это ваш метод, поэтому вы можете переписать его, чтобы он принимал HttpRequestBase ? Если нет, вы всегда можете передать текущий HttpRequest из HttpContext.Current.HttpRequest . Однако я часто оборачиваю доступ к HttpContext внутри класса, как указано в ASP.NET: Удаление зависимостей System.Web для лучшей поддержки модульного тестирования.

49
ответ дан 24 November 2019 в 08:33
поделиться

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

Например, если вам нужно получите доступ к текущему пользователю, дайте своему методу действия параметр типа IPrincipal , который вы заполняете с помощью атрибута и высмеиваете по своему усмотрению при тестировании. Небольшой пример того, как это сделать, можно найти в этом сообщении в блоге и, в частности, в пункте 7.

4
ответ дан 24 November 2019 в 08:33
поделиться

Попробуйте использовать / создать HttpRequestWrapper, используя HttpRequestBase.

9
ответ дан 24 November 2019 в 08:33
поделиться

Это сработало, как сказал Кевин.

Я использую статический метод для получения HttpContext.Current.Request , поэтому всегда имею объект HttpRequest для использования при необходимости.

Здесь, в помощнике класса

public static HttpRequest GetRequest()
{
    return HttpContext.Current.Request;
}

Здесь, в контроллере

if (AcessoModel.UsuarioLogado(Helper.GetRequest()))

Здесь, в представлении

bool bUserLogado = ProjectNamespace.Models.AcessoModel.UsuarioLogado(
                      ProjectNamespace.Models.Helper.GetRequest()
                   );

if (bUserLogado == false) { Response.Redirect("/"); }

Мой метод UsuarioLogado

public static bool UsuarioLogado(HttpRequest Request)
1
ответ дан 24 November 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: