identity 2.0 mvc5 的按钮权限
Button permission for identity 2.0 mvc5
我已经为我的 mvc5 项目实现了默认的 identity2.0。我如何禁用呈现局部视图(例如:创建局部视图)的 Action Link 以限制未经授权的用户访问该局部视图。
我可以将授权属性放在保存操作方法上。但是我想通过禁用呈现该局部视图的 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">
}
我想禁用下面的操作 Link(添加新记录),这是一个装饰有 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()。您可能想要创建一个帮助程序方法以使其更易于访问。
现在您可以直接在 Razor 中使用它,或者您可以在控制器的 Get 端使用它来构建视图模型或 ViewBag 设置。
所以你的代码最终会看起来像:
@if (User.IsInRole("Admin"))
{
@Html.ActionLink...
}
我已经为我的 mvc5 项目实现了默认的 identity2.0。我如何禁用呈现局部视图(例如:创建局部视图)的 Action Link 以限制未经授权的用户访问该局部视图。
我可以将授权属性放在保存操作方法上。但是我想通过禁用呈现该局部视图的 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">
}
我想禁用下面的操作 Link(添加新记录),这是一个装饰有 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()。您可能想要创建一个帮助程序方法以使其更易于访问。
现在您可以直接在 Razor 中使用它,或者您可以在控制器的 Get 端使用它来构建视图模型或 ViewBag 设置。
所以你的代码最终会看起来像:
@if (User.IsInRole("Admin"))
{
@Html.ActionLink...
}