私は次のようないくつかのREST操作と.NETコアアプリケーション(以下のコードを参照)を有する:ミドルウェア
namespace Controllers
{
[Route("system")]
public class SystemController : Controller
{
// This is a public access method
[HttpGet("dictionaries/{name}")]
public List GetDictionary(HttpRequestMessage requestMsg, string name)
{
// etc
}
// This function shall be accessible only by an admin role
[AdminRole]
[HttpPost("dictionaries/{name}")]
public IActionResult PostDictionary(HttpRequestMessage requestMsg, string name)
{
// etc
}
}
}
を私はいくつかの操作がアクセスできるようにフラグを付けます特定の役割(adminなど)によってのみ許可されます。エレガントな方法は、属性を使用することです。
今、私はC#の方法は、URLに応じて呼び出されるようにトラップの正しいMiddleware
実装がどうなるかを決定し、リフレクションを使用してrole属性(もしあれば)を取得したいので、私は不正な通話をブロックすることができます。
アドバイスをしてください。
属性は '[Authorize(Roles =" Administrator ")]'のように、あなたが望むようにしていませんか? [the docs](https://docs.asp.net/en/latest/security/authorization/roles.html)をチェックしてください。 –