有没有一种方法可以将OwinRequest转换为HttpRequestBase?

12

我正在编写一段 Owin 中间件,需要使用一些遗留代码,该代码使用 HttpRequestBase 作为方法参数。由于遗留代码没有遵循 SOLID 原则,所以不可能将其扩展以使用 OwinRequest 替换 HttpRequestBase。

是否有一种扩展(或方法)可将 OwinRequest 转换为 HttpRequestBase?


1
创建HttpContextBase和那些类的整个目的不是让它们都有一个共同的基础吗?现在他们创建了一整套全新的Owin类。拜托,微软..... - Brain2000
1个回答

22

如果您可以访问请求的IOwinContext,则可以使用这个小技巧来获取HttpContextBase

HttpContextBase httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);

然后,你只需要:

HttpRequestBase httpRequest = httpContext.Request;

我没有IOwinContext。我有意编写中间件,不继承自OwinMiddleware。是否有办法从IDictionary<string, object>创建IOwinContext? - Maciek
1
接受这个答案,因为OwinContext c-tor接受IDictionary<string, object>参数,并且可以轻松从Owin环境中创建。 :) 谢谢Mati。 - Maciek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接