我有一个俱乐部表,当一个新的创建一个新的角色创建俱乐部(俱乐部的id)管理员。基于动态角色的方法授权
我希望能够在该方法的授权属性中引用此角色。
继承人什么伊夫试图在控制器方法:
[Authorize(Roles = "Club" + clubId + "Admin")]
public ActionResult ClubDetails(int clubId)
{
var viewModel = db.Clubs
.Where(t => t.ClubId == clubId)
.Select(t => new ClubDetailsViewModel
{
ClubId = t.ClubId,
Name = t.Name,
ShortName = t.ShortName,
Founded = t.Founded,
ContactName = t.FirstName + " " + t.LastName,
Address1 = t.Address1,
Address2 = t.Address2,
City = t.City,
County = t.County,
Postcode = t.Postcode,
Telephone = t.Telephone,
Email = t.Email,
Website = t.Website,
Bio = t.Bio,
ClubTypeId = t.ClubTypeId,
MembershipStatusId = t.MembershipStatusId,
ChequesPayable = t.ChequesPayable,
BACSAcc = t.BACSAcc,
BACSSort = t.BACSSort,
PaypalAdd = t.PaypalAddress,
})
.FirstOrDefault();
return View(viewModel);
}
但是,这给出了clubId错误的授权属性。在当前上下文中不存在名称clubId
有没有一种方法可以引用传递给authorize属性中方法的参数?
好吧,授权属性在绑定发生之前在MVC管道中执行。你我应该创建你自己的授权过滤器。 [这个答案](http://stackoverflow.com/a/12828402/1849444)将帮助你我。 –