gpt4 book ai didi

asp.net-mvc - ASP.Net MVC 6 + WebAPI Auth - 将 MVC 重定向到登录,但如果使用 WebAPI,则返回 401

转载 作者:行者123 更新时间:2023-12-02 01:16:26 27 4
gpt4 key购买 nike

我有一个 AngularJS + MVC + WebAPI,我正在尝试:- 使用标准(个人账户)进行MVC认证;- 使用相同的用户和密码进行基于 WebAPI 的身份验证。

问题,AngularJS 一切正常,cookie 交换发生,Web API 返回值,但是当我尝试从 Postman 访问 WebAPI 时,我得到的是登录页面的重定向,而不是 401 未经授权。

实现这一目标的最简单方法是什么?我是否必须子类化授权并手动实现逻辑?

谢谢

最佳答案

对于 ASP.Net 5 最新 beta8,答案是将以下内容添加到 Startup.cs 上的ConfigureServices:

         services.Configure<IdentityOptions>(config =>
{
options.Cookies.ApplicationCookie.LoginPath = "/Account/Login";
options.Cookies.ApplicationCookie.CookieHttpOnly = true;
options.Cookies.ApplicationCookie.CookieSecure = CookieSecureOption.SameAsRequest;
options.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents()
{
OnRedirect = ctx =>
{
if (ctx.Request.Path.StartsWithSegments("/api") &&
ctx.Response.StatusCode == 200)
{
ctx.Response.StatusCode = 401;
return Task.FromResult<object>(null);
}
else
{
ctx.Response.Redirect(ctx.RedirectUri);
return Task.FromResult<object>(null);
}
}
};
});

关于asp.net-mvc - ASP.Net MVC 6 + WebAPI Auth - 将 MVC 重定向到登录,但如果使用 WebAPI,则返回 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com