我正在使用用于 MVC 的 OAuth 2.0,一个用于 Oauth2 的 .NET 库。但是,我正在构建一个 Web Api 项目,并希望让这个库与 Web Api 一起使用。
我遇到的问题是该库在从控制器调用的 HttpRequestBase 上使用了两个扩展方法。
以下是扩展方法:
public static string GetToken(this HttpRequest request)
{
var wrapper = new HttpRequestWrapper(request);
return GetToken(wrapper);
}
public static string GetToken(this HttpRequestBase request)
{
if (request == null)
return String.Empty;
// Find Header
var headerText = request.Headers[OAuthConstants.AuthorzationHeader];
if (!String.IsNullOrEmpty(headerText))
{
var header = new AuthorizationHeader(headerText);
if (string.Equals(header.Scheme, "OAuth", StringComparison.OrdinalIgnoreCase))
return header.ParameterText.Trim();
}
// Find Clean Param
var token = request.Params[OAuthConstants.AuthorzationParam];
return !String.IsNullOrEmpty(token)
? token.Trim()
: String.Empty;
}
在 MVC 项目中,他们只需从控制器调用 Request.GetToken()。当然,Web Api 的请求是一个 HttpRequestMessage。恐怕现在解决 HttpRequest 和 HttpRequest 消息之间的区别超出了我的能力范围。
我可以将此扩展方法转换为与 HttpRequestMessage 一起使用或以某种方式使其在 Web Api 中工作吗?
谢谢!