5

Bir üçüncü taraf hizmetine API istekleri yapan bir kimlik doğrulama ara katman kullanıyorum. Bu ara yazılım daha sonra bir YetkilendirmeHandler tarafından bir IAuthorizationRequirement ve özel bir politika ile birlikte ele alınan iddiaları hazırlar.Özel yönlendirme AuthorizationHandler (ASP.NET Çekirdeği)

katman parçası çalışır ve hak taleplerini oluşturmak mümkün değilim: Ben belirli bir URL'ye yönlendiren şaşırıp

context.User.AddIdentity(identity); // contains claims 

(biz yönlendirmek gereken yere için özel kurallar vardır) dan İşleyici veya öznitelik. İşleyiciden, aşağıdakileri denedim:

var mvcContext = context.Resource as Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext; 
mvcContext.Result = new RedirectToActionResult("login", "home", null); 

ancak göz ardı edilmiştir; sadece bir 401 iade edilir. AuthorizeAttribute artık Yetkilendirmesine sahip değil, bu yüzden onu kullanamam ...

Düşünceler? Teşekkürler. Eğer API Middleware denemenin istediğim tek şey bir Giriş davranışı gerçekleştirmek için ise

cevap

0

Kodunuzla olarak açıklamaya görünüyor bu olası vakalar, benim görüşüme göre, düşündürücü:

  1. /login/home bir web sayfasına yönlendiriyor: Sen Giriş web sayfasına yönlendirmek için HttpContext.Response.Redirect kullanmalıdır

    • . As the documentation says, Bu, herhangi bir web tarayıcısının yorumlayabileceği bir 301 kodu gönderir. HttpContext, Invoke yönteminde kullanılabilir.
  2. /login/home kullanıcı kimliğini doğrular mantık gerçekleştiren bir denetleyiciye yönlendiriyorsa:

da Nate's post ve this question bir göz atın.