前言
ASP NET MVC项目在鉴权时, 对于未登录请求会触发challenge重定向至登录界面.
然而, 在前后端分离项目中, 往往需要后端返回401而非302, 这个简单的功能实现起来却相当麻烦.
因为ASP NET MVC项目默认使用的是一个叫CookieAuthentication的中间件来实现身份认证的功能的,该中间件中会将401响应码进行特殊处理,所以导致我们无法手动返回401响应码。
我总结了两种比较简单的方法供大家参考:
1.重定向后再返回401
修改302重定向地址, 在新地址方法中直接返回401.
代码如下:
// programe.cs(Net5以下为startup.cs文件)-------------------------------
builder.Services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.Cookie