我已经为我的mvc5项目实现了默认的identity2.0。如何禁用渲染局部视图的Action Link(例如:Create partialview),限制未授权用户访问该局部视图。
我可以将授权属性放在保存操作方法上。但是我想通过禁用渲染部分视图的Action Link来限制对部分视图的访问。为了进一步演示我的问题,我把代码放在下面。
这是保存动作方法
CustomAuthorize(Roles = "Admin")]
public ActionResult Save(ProductType producttype)
{
if (ModelState.IsValid)
{
//
objContext.SaveChanges();
return RedirectToAction("vwProductTypeIndex");
}
}
创建带有保存按钮的局部视图
@Html.BeginForm("Save", "ProductType"))
{
//
<input type="submit" id="btn" value="Save" class="btn btn-success" clientidmode="Static">
}
我想禁用下面的动作链接(添加新记录),这是一个用css装饰的按钮,呈现上述部分视图。
@Html.ActionLink("Add New Record", "vwProductTypeIndex", "ProductType", new { A = "New" }, new { Class = "btn btn-primary page-scroll", style = "top:50px; margin-left:168px;width:120px;text-indent:-5px; position:relative;" })
我怎样才能做到这一点。感谢所有的帮助。提前感谢!
您可以使用UserManager. isinrole (userId," role ")检查角色,其中UserManager为HttpContext.Current.GetOwinContext(). getusermanager()。您可能需要创建一个helper方法来使其更易于访问。
现在你可以直接在Razor中使用它,或者你可以在控制器的Get端使用它来构建视图模型或ViewBag设置。
所以你的代码最终看起来像这样:
@if (User.IsInRole("Admin"))
{
@Html.ActionLink...
}