Chúng tôi đang xây dựng một API ServiceStack sẽ sử dụng Xác thực cơ bản. Tôi hiện đã thiết lập auth trong AppHost của tôi như sau:Khi xác thực ServiceStack không thành công, không chuyển hướng?
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() })
);
Khi thực hiện một yêu cầu không có tiêu đề ủy quyền hoặc tên người dùng sai + vượt qua phản ứng là một chuyển hướng để /Account/Login.aspx?ReturnUrl= ...
Parital yêu cầu + phản ứng Ví dụ:
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
có cách nào để làm cho nó đáp ứng với chỉ một HTTP 401 Unauthorized hoặc HTTP 403 Forbidden?
tôi nghĩ rằng phải có một số công cụ ASP.net khó hiểu cho tôi đây. Tôi đã nhìn thấy nó trong các tài liệu và thử HtmlRedirect = null và bên cạnh đó tôi đang sử dụng ứng dụng/json cho Accept/Content-type tiêu đề. Chuyển hướng không giống như bạn viết (~/login), nhưng /Account/Login.aspx. Tôi sẽ đi qua global.aspx của tôi và các công cụ, cho bạn biết. Hiện tại, tôi chấp nhận câu trả lời của bạn, đó là giải pháp khi SS được thiết lập chính xác. Cảm ơn bạn! :) – Magge
Vâng, đây là điều xấu của tôi. Tôi vẫn có các thành phần .net trong Web.config của tôi, có vẻ như nó ghi đè xác thực SS. Làm việc như một say mê sau khi tôi gỡ bỏ nó. – Magge
Tôi hiểu rồi! ... :) –