Budujemy ServiceStack API, który będzie używać uwierzytelniania podstawowego. Mam obecnie konfigurowania uwierzytelniania w moim AppHost następująco:Gdy uwierzytelnianie ServiceStack nie powiedzie się, nie przekierowuj?
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() })
);
Podczas żądania bez nagłówka Authorization lub niewłaściwej nazwy użytkownika + przekazać odpowiedź jest przekierowanie do /Account/Login.aspx?ReturnUrl= ...
Parital żądanie + odpowiedź przykład:
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
Czy istnieje sposób, aby odpowiedzieć tylko HTTP 401 Nieuprawnione lub HTTP 403 Forbidden?
myślę, że musi być jakiś ASP.net rzeczy mylące mnie tutaj. Widziałem to w dokumentach i wypróbowałem HtmlRedirect = null, a poza tym używam app/json dla nagłówków Accept/Content-type. Przekierowanie to nie to samo co ty (~/login), ale /Account/Login.aspx. Przejdę przez mój global.aspx i inne rzeczy, powiem. Przyjmuję teraz twoją odpowiedź, ale jest to rozwiązanie, gdy SS jest poprawnie skonfigurowany. Dziękuję Ci! :) – Magge
Tak, to było moje złe. Nadal miałem pliki .net Membership w moim Web.config, wydaje się, że zastępuje uwierzytelnianie SS. Działa jak urok po usunięciu go. – Magge
Mam to! ... :) –