Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kimlik doğrulaması kullanılırken cookie , API uç noktaları kimlik doğrulaması hataları için kimliği doğrulanmamış istekleri oturum açma sayfalarına yönlendirmek yerine uygun HTTP durum kodlarını (401 veya 403 gibi) döndürür. Programlı API erişimi için daha uygun olan bu davranış, .NET 10'da ASP.NET Core'da kullanıma sunulmuştur.
ASP.NET Core API uç noktalarını nasıl tanımlar?
ASP.NET Core bu davranışı api ile ilgili olarak tanıdığı uç noktalara otomatik olarak uygular, örneğin:
- Özniteliğiyle
[ApiController]dekore edilmiş denetleyiciler - , , ,
MapGetMapPostMapPutvb. ileMapDeletekaydedilen en az API uç noktası. - JSON yanıtlarını açıkça isteyen uç noktalar
- SignalR hub'lar ve uç noktalar
Varsayılan davranış ve özelleştirme
varsayılan olarak ASP.NET Core, uç nokta türüne göre kimlik doğrulama mantığını uygular cookie :
- Web sayfaları: Oturum açma sayfalarına yeniden yönlendirme
- API uç noktaları: Yeniden yönlendirmeler olmadan 401 veya 403 durum kodları döndürme
Davranışı yapılandırma
Varsayılan davranış çoğu senaryo için geçerli olsa da, gerekirse özelleştirilebilir:
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login";
// The framework automatically handles API endpoints
// No additional configuration needed
});
Belirli uç noktalar için otomatik algılamayı geçersiz kılmanız gerekiyorsa, özniteliğini [Authorize] belirli kimlik doğrulama düzenleriyle kullanın veya özel kimlik doğrulama işleyicileri uygulayın.
Geçişle ilgili dikkat edilmesi gerekenler
.NET 10'da sunulan bu davranış değişikliği, mevcut uygulamalar için hataya neden olmayacak şekilde tasarlanmıştır:
- Web uygulamaları: Oturum açma sayfası yeniden yönlendirmeleriyle daha önce olduğu gibi çalışmaya devam edin
- Karma uygulamalar: Web sayfaları yeniden yönlendirmeleri alırken API uç noktaları düzgün durum kodları alır
- Yalnızca API uygulamaları: Ek yapılandırma olmadan uygun HTTP durum kodlarından yararlanın
API uç noktalarınızı test etme
ASP.NET Core 10'a yükselttikten sonra API uç noktalarınızın uygun durum kodları döndürdüğünü doğrulayın:
[Test]
public async Task UnauthorizedApiRequest_Returns401()
{
var response = await client.GetAsync("/api/secure-data");
Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode);
Assert.False(response.Headers.Location != null); // No redirect
}
İlgili konular
ASP.NET Core