身份验证 – 禁止ASP.NET Core中的API URL重定向
发布时间:2020-12-16 00:15:27 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET Core站点,它对大多数页面使用cookie身份验证.对于那些页面,需要为未授权客户端提供302重定向的默认服务器响应.但是,该站点也接受API请求;他们使用API??密钥,不使用cookie. 理想情况下,我想完全关闭API URL的cookie处理,但最低限度,我需要确
我有一个ASP.NET Core站点,它对大多数页面使用cookie身份验证.对于那些页面,需要为未授权客户端提供302重定向的默认服务器响应.但是,该站点也接受API请求;他们使用API??密钥,不使用cookie.
理想情况下,我想完全关闭API URL的cookie处理,但最低限度,我需要确保如果API客户端未经授权,服务器不会响应302重定向. 解决方法
仅当路径不是API时,才将重定向事件处理程序替换为使用默认行为的处理程序.在Startup.ConfigureServices中,添加以下内容:
services.ConfigureApplicationCookie(options => { options.Events.OnRedirectToAccessDenied = ReplaceRedirector(HttpStatusCode.Forbidden,options.Events.OnRedirectToAccessDenied); options.Events.OnRedirectToLogin = ReplaceRedirector(HttpStatusCode.Unauthorized,options.Events.OnRedirectToLogin); }); 使用此帮助程序方法替换重定向方法: static Func<RedirectContext<CookieAuthenticationOptions>,Task> ReplaceRedirector(HttpStatusCode statusCode,Func<RedirectContext<CookieAuthenticationOptions>,Task> existingRedirector) => context => { if (context.Request.Path.StartsWithSegments("/api")) { context.Response.StatusCode = (int)statusCode; return Task.CompletedTask; } return existingRedirector(context); }; 有了这个,API控制器方法可以调用Unauthorized()和Forbid()而不会导致重定向. 更新:以上是针对ASP.NET Core 2. code for ASP.NET Core 1是不同的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – MVC不是json序列化实现IEnumerable的模型上
- asp.net – 如何使用AspNetSqlMembershipProvider正确验证m
- DevExpress v17.2新版亮点—ASP.NET篇(三)
- asp.net-mvc – MVC – 如何将模型从视图传递到控制器
- 将(单片)经典ASP迁移到ASP.Net
- 在ASP.Net中如何做一个搜索表单?
- asp.net-mvc – 如何为其模型调用“null”的局部视图?
- ASP.NET网站Windows窗体应用程序WCF服务:客户端凭据
- asp.net – 针对测试数据库集成测试Web服务
- asp.net – http 304和404之间的任何性能差异?
推荐文章
站长推荐
- asp.net – 使用IronPython调用带有参数的Python
- asp.net – 如何拒绝访问文件夹或文件
- 如何在ASP.NET Core类库项目中读取配置文件详解
- asp.net – 用于Web应用程序的实体框架过度杀毒?
- asp.net-mvc – MVC3 – RenderSection中的Rende
- asp.net网站 – 自动添加版本号?
- asp.net 汉字转换拼音及首字母实现代码
- asp.net-mvc – 如何在ASP.NET MVC中控制部分视图
- asp.net – 使用匿名访问在Sharepoint中读取Cook
- ASP.NET AJAX Call Web Service , Return JSON F
热点阅读