0
특정 역할을 제외한 모든 역할을 허용하는 작업에 권한 부여 속성이 필요합니다. 내장특정 역할 속성에없는 경우 권한 부여 MVC 5
[!Authorize(Roles = "SuperUser")]
public ActionResult PaySuperUser.....
아무것도 같은 무엇인가? 또는 맞춤 속성에 대한 제안 사항이 있습니까?
특정 역할을 제외한 모든 역할을 허용하는 작업에 권한 부여 속성이 필요합니다. 내장특정 역할 속성에없는 경우 권한 부여 MVC 5
[!Authorize(Roles = "SuperUser")]
public ActionResult PaySuperUser.....
아무것도 같은 무엇인가? 또는 맞춤 속성에 대한 제안 사항이 있습니까?
사용자 지정 속성은 이동하는 방법이라고 생각합니다. 여기
내 코드입니다 :using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Controllers;
namespace YourFancyNamespace
{
public class AuthorizeExtended : AuthorizeAttribute
{
private string _notInRoles;
private List<string> _notInRolesList;
public string NotInRoles
{
get
{
return _notInRoles ?? string.Empty;
}
set
{
_notInRoles = value;
if (!string.IsNullOrWhiteSpace(_notInRoles))
{
_notInRolesList = _notInRoles
.Split(new[] {","}, StringSplitOptions.RemoveEmptyEntries)
.Select(r => r.Trim()).ToList();
}
}
}
public override void OnAuthorization(HttpActionContext actionContext)
{
base.OnAuthorization(actionContext);
if (_notInRolesList != null && _notInRolesList.Count > 0)
{
foreach (var role in _notInRolesList)
{
if (actionContext.RequestContext.Principal.IsInRole(role))
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
}
}
}
}
}
}
그리고 여기 당신이 그것을 사용하는 방법입니다 :
AuthorizeExtended은 (역할 필터) 권한 부여와 동일 //+ 제외 모든 성가신 사용자
[AuthorizeExtended(Roles = "User", NotInRoles="PeskyUser")]
[HttpPost]
[Route("api/Important/DoNotForgetToUpvote")]
public async Task<IHttpActionResult> DoNotForgetToUpvote()
{
return Ok("I did it!");
}
// Б AuthorizeExtended는 평범한 사용자와 동일 함 모든 성가신 사용자를 인증 + 제외하십시오
[AuthorizeExtended(NotInRoles="PeskyUser")]
[HttpPost]
[Route("api/Important/DoNotForgetToUpvote")]
public async Task<IHttpActionResult> DoNotForgetToUpvote()
{
return Ok("I did it!");
}
// В AuthorizeExtended는
[AuthorizeExtended]
[HttpPost]
[Route("api/Important/DoNotForgetToUpvote")]
public async Task<IHttpActionResult> DoNotForgetToUpvote()
{
return Ok("I did it!");
}
권한 부여와 동일