asp.net – 没有使用WebApi委托处理程序分配内部处理程序
发布时间:2020-05-27 11:08:52 所属栏目:asp.Net 来源:互联网
导读:我有一个WebApi在我的代码中抛出异常的问题: public class WebApiAuthenticationHandler : DelegatingHandler { private const string AuthToken = AUTH-TOKEN; protected override TaskHttpResponseMessage
|
我有一个WebApi在我的代码中抛出异常的问题: public class WebApiAuthenticationHandler : DelegatingHandler
{
private const string AuthToken = "AUTH-TOKEN";
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,CancellationToken cancellationToken)
{
var requestAuthTokenList = GetRequestAuthTokens(request);
if (ValidAuthorization(requestAuthTokenList))
{
// EXCEPTION is occuring here!....
return base.SendAsync(request,cancellationToken);
}
/*
** This will make the whole API protected by the API token.
** To only protect parts of the API then mark controllers/methods
** with the Authorize attribute and always return this:
**
** return base.SendAsync(request,cancellationToken);
*/
return Task<HttpResponseMessage>.Factory.StartNew(
() =>
{
var resp = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("Authorization failed")
};
//var resp = new HttpResponseMessage(HttpStatusCode.Unauthorized);
//resp.Headers.Add(SuppressFormsAuthenticationRedirectModule.SuppressFormsHeaderName,"true");
return resp;
});
}
例外情况正在发生: base.SendAsync(request,cancellationToken); 我不知道如何解决这个问题.我的路线表中有以下内容: routes.MapHttpRoute("NoAuthRequiredApi","api/auth/",new { Controller = "Auth" });
routes.MapHttpRoute("DefaultApi","api/{controller}/{id}",new { id = RouteParameter.Optional },null,new WebApiAuthenticationHandler());
发生这种路由是DefaultApi路由.任何帮助非常感谢…. 解决方法找到答案 here和一个示例处理程序 here.您需要设置您希望传递的请求的InnerHandler. 只需将其添加到您的构造函数中即可: public class WebApiAuthenticationHandler : DelegatingHandler
{
public WebApiAuthenticationHandler(HttpConfiguration httpConfiguration)
{
InnerHandler = new HttpControllerDispatcher(httpConfiguration);
}
并在创建新实例时传递对GlobalConfiguration的引用: routes.MapHttpRoute("DefaultApi",WebApiAuthenticationHandler(GlobalConfiguration.Configuration)); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 如何在MVC 4 w / default simplemembersh
- ASP.NET会话意外结束
- asp.net – 从aspx页面中的Static方法访问ViewState
- asp.net – asp:ContentPlaceHolder和代码块问题
- asp.net – 可以回收IIS应用程序池,而不会丢失用户会话?
- asp.net-mvc – 强大类型的ASP.NET MVC与ADO.NET实体框架
- 运行SonarQube针对ASP.Net核心解决方案/项目
- ASP.NET MVC通过ActionLink传递模型
- asp.net – 如何在x64中使用WebDev.WebServer.exe(VS Web S
- asp.net – 在双列表框中移动项目
推荐文章
站长推荐
- asp.net – 如何从HTTP请求获取MAC地址?
- asp.net – .Net Core 2 Spa模板与角度材料
- 调试 – 如何调试经典ASP?
- asp.net-mvc – 使ASP.NET MVC应用程序Web Farm准
- asp.net-mvc – ASP.NET MVC3,Html.TextAreaFor没
- asp.net-mvc – AspNet上的Kestrel vNext不提供索
- asp.net-mvc – asp fontawesome 404(未找到)
- 使用asp.net和vb.net从sql server导出到excel文件
- asp.net-mvc – 如何使用编辑器内部的foreach
- asp.net – 在web.config文件中设置重定向
热点阅读
