我已经在我们的 MVC 应用程序中为基于 Angular 色的授权覆盖了 AuthorizeAttribute 类。
[HttpPOST]
[CustomAuthorize(Roles = "AddCOA")]
public ActionResult Edit([Bind(Include = "N100,S104,S103,S101,S1,S100,D1")] TrM trM)
{
if (ModelState.IsValid)
{
db.Entry(trM).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("View",trM);
}
return View(trM);
}
我从 View 调用此 Controller 方法,其中包含一个优惠券列表。现在我必须为某个 Angular 色禁用 View 中的Edit ActionLink 按钮,我该如何实现?
@Html.Actionlink("Edit", "Edit", "Controller", new{@class = "btn btn-success"})
目前它会自动将 View 重定向到登录页面。
最佳答案
你可以使用 razor 来检查当前用户是否在指定的 Angular 色中:
@if (User.IsInRole("AddCOA"))
{
@Html.Actionlink("Edit", "Edit", "Controller", new { @class = "btn btn-success" })
}
else
{
@Html.Actionlink("Edit", "Edit", "Controller", new { @class = "btn btn-success disbled" })
}
关于javascript - 使用 ASP.net Identity 在基于角色的授权上禁用 MVC View 中的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31890373/