zoukankan      html  css  js  c++  java
  • [AspNetCore]CookieAuthentication禁用自动跳转到登录页

    就是API的使用,记录一下

    要干嘛?

    一般情况下,配置基于Cookie的身份验证和鉴权,这样写就够了。

    当用户访问被[Authorize]描述的Action的时候,若未登录,会直接跳转到 /account/login?returnUrl=xxx 页面上,在MVC中,这个实现非常好,拿来即用,基本上不用添加自己的逻辑。

    services
          .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
          .AddCookie();
    

    如果是基于webapi的前后分离项目,当前端请求接口是,若鉴权失败,最好返回原始响应,因为大部分前端框架已经封装好了基于标准响应异常处理的逻辑。

    还是上面的页面,若用户未登录,我们希望直接响应一个类似{status: 401,msg: 'xxx'}这样的结果,而不是跳转到登录页面。

    怎么做?

    很简单,但因为是第一次处理这样的需求,用了很长时间才找到对应的配置方式,这里备忘一下:

    services
          .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
          .AddCookie(options =>
          {
              options.Events.OnRedirectToLogin = context =>
              {
                  context.Response.StatusCode = StatusCodes.Status401Unauthorized;
                  return Task.CompletedTask;
              };
          });
    

    这里option.Events的事件蛮多的,没有一一研究,已经满足现在的要求,其他的等用到的时候再说吧。


  • 相关阅读:
    linux内核的若干问题
    shell(四)--turboastat
    Mac系统维护
    花卉养殖(1) 黄叶
    你就是佛(1)- 本体、开悟与思想
    linux 工具(2)----- crontab定时任务管理
    vim (四) 使用技巧
    linux kernel __init和__exit宏的作用
    优秀的网站
    Mac OSX 快捷键&命令行
  • 原文地址:https://www.cnblogs.com/diwu0510/p/13237344.html
Copyright © 2011-2022 走看看