gpt4 book ai didi

.net - ServiceStack认证失败时,不重定向?

转载 作者:行者123 更新时间:2023-12-03 23:46:06 25 4
gpt4 key购买 nike

我们正在构建一个将使用基本身份验证的 ServiceStack API。我目前在我的 AppHost 中设置了身份验证,如下所示:

var authDb = new OrmLiteConnectionFactory("Server=(...);", true, MySqlDialectProvider.Instance);

var authRepo = new OrmLiteAuthRepository(authDb);
authRepo.CreateMissingTables();
container.Register<ICacheClient>(c => new MemoryCacheClient());
container.Register<IUserAuthRepository>(c => authRepo);

Plugins.Add(
new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() })
);

当执行没有 Authorization header 或错误的 username+pass 的请求时,响应是重定向到/Account/Login.aspx?ReturnUrl=...

Parital 请求 + 响应示例:
POST http://localhost:60278/reserve HTTP/1.1

HTTP/1.1 302 Found
Location: /Account/Login.aspx?ReturnUrl=%2freserve
X-Powered-By: ServiceStack/3,924 Win32NT/.NET

有没有办法让它只响应 HTTP 401 Unauthorized 或 HTTP 403 Forbidden ?

最佳答案

默认情况下,ServiceStack 的 AuthFeature 只会尝试将您重定向到默认的 ~/login 的路径HTML 内容类型请求。您可以通过将 AuthFeature 中的重定向路径设置为 null 来覆盖它:

Plugins.Add(new AuthFeature(...) { HtmlRedirect = null });

这将回落到标准 401 UnAuthorized其他 Content-Type 得到的响应。

将 HtmlRedirect 全局设置为 null 后,您可以临时将其添加回来,例如:
[Authenticate(HtmlRedirect="~/path/to/redirect/to")]

关于.net - ServiceStack认证失败时,不重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065289/

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