1
我正在學習如何使用角色和聲明的教程。首先,它TEACHED使用角色的話,除其他事項外,我不得不把線下的ApplicationUserManager.cs代碼:做了角色註釋。但索賠註釋是如何的?
public const string Administrator = "Admin";
由於該項目的想法是IMDB頁面,只有管理員可以創建新的電影的流派,我不得不把註釋
[Authorize(Roles = ApplicationUserManager.Administrator)] /* role annotation */
[HttpPost]
[Route("Api/Genres")]
public async Task<IHttpActionResult> PostAsync(GenrePostRequest request)
{
using (var db = new ApplicationDbContext())
{
await Genre.CreateAsync(request.Name, GetUserId(), db, Request.GetOwinContext().GetUserManager<ApplicationUserManager>());
return Ok();
}
}
POST功能之前,對GenreController.cs如上圖所示。一切正常。一切都很好。現在,本教程說在ApplicationUserManager.cs代碼添加這兩條線:
public const string IsAdminClaim = "IsAdmin";
public const string IsAdminClaimValue = "True";
,所以我可以用索賠。
教程現在說「更新GenreController的創建行動,使用與指定要求創建的註釋。」
我知道那裏的GenreController的創建行動,但索賠的註釋應該是怎樣的樣子?
我知道我有一個名爲AuthorizationAttribute.cs類,看起來像它:
public class AuthorizationAttribute : AuthorizationFilterAttribute
{
public string ClaimType { get; set; }
public string ClaimValue { get; set; }
public AuthorizationAttribute(string claimType, object claimValue)
{
this.ClaimType = claimType;
this.ClaimValue = claimValue.ToString();
}
public override Task OnAuthorizationAsync(HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken)
{
/* some codes */
}
}