【发布时间】:2015-09-30 23:33:13
【问题描述】:
我有一个俱乐部表,当创建一个新角色时,会创建一个新角色 Club(俱乐部的 id)Admin。
我希望能够在方法的授权属性中引用这个角色。
这是我在控制器方法上尝试过的:
[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
有没有一种方法可以引用在授权属性中传递给方法的参数?
【问题讨论】:
-
好吧,授权属性在绑定发生之前在 MVC 管道中执行。你我猜,你应该创建自己的授权过滤器。 This answer 会帮助你。
标签: c# asp.net-mvc