Asp.net-Mvc

在 Asp.Net Core 的 Razor 頁面中檢查登錄使用者 AuthorizePolicy

  • May 29, 2016

我正在尋找這個的變種

@if (SignInManager.IsSignedIn(User) && User.IsInRole(Roles.Administrator))
{
   <div id="editArticle">

但不是在角色之後檢查,而是在檢查策略之後,就像您在控制器中那樣通過這樣做。

[Authorize(Policy = Policies.RequireAdmin)]

這似乎類似於這裡提出的問題

我發現此連結可能會有所幫助:https ://docs.asp.net/en/latest/security/authorization/views.html

該頁面的範例:

@if (await AuthorizationService.AuthorizeAsync(User, "PolicyName"))
{
   <p>This paragraph is displayed because you fulfilled PolicyName.</p>
}

在某些情況下,資源將成為您的視圖模型,您可以呼叫 AuthorizeAsync 與在基於資源的授權期間檢查的方式完全相同;

@if (await AuthorizationService.AuthorizeAsync(User, Model, Operations.Edit))
{
   <p><a class="btn btn-default" role="button"
   href="@Url.Action("Edit", "Document", new {id= Model.Id})">Edit</a></p>
}

引用自:https://stackoverflow.com/questions/37509389