Aracılığıyla paylaş


ASP0005: Yol işleyici lambda tarafından çağrılan yönteme özniteliği yerleştirmeyin

Değer
Kural Kimliği ASP0005
Kategori Kullanım
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan

Neden

Yol işleyicisi uç noktasında yol işleyicisi yerine yöntem tanımına bir öznitelik uygulandı.

Kural açıklaması

Bir uç nokta bildirildiğinde, özniteliklerin etkili olması için temsilci parametresine uygulanması gerekir. Örneğin, aşağıdaki kod örneğindeki Authorize özniteliği kayıtlı uç noktada ayarlanmadı:

app.MapGet("/todos/{id}", GetTodoById);

[Authorize]
Todo GetTodoById(int id)
{
  ...
}

Özniteliği, aşağıdaki kodda gösterildiği gibi yol işleyici parametresine yerleştirilmelidir:

app.MapGet("/todos/{id}", [Authorize] GetTodoById);

Todo GetTodoById(int id)
{
  ...
}

İhlalleri düzeltme

Bu kuralın ihlalini düzeltmek için uç nokta özniteliklerinin yol işleyici parametresine uygulandığından emin olun:

app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);

Uyarıların ne zaman bastırılması gerekiyor?

Bu kuraldan uyarıyı bastırmayın. Yanlış yerleştirilmiş öznitelikler çalışma zamanında beklenmeyen davranışlara neden olabilir.