实际上我有一个asp.net mvc web应用程序现在我有一个按钮,如果用户有足够的权限,那么它的可见性设置为true或false(使用jquery) 现在,最近在浏览器中通过firebug工作,我将其可见性更改为true。 它执行了动作(这是错误的)。
如何防止这种情况? 感谢。
答案 0 :(得分:0)
您需要在单击按钮调用的控制器方法或父类上执行授权。
您可以使用AuthorizeAttribute类来装饰您的类。
还有更多information here on MSDN regarding the Authorize Attribute。
您将在该页面上看到示例,例如:
[Authorize(Roles = "Admin, Super User")]
public ActionResult AdministratorsOnly()
{
return View();
}
答案 1 :(得分:0)
强调问题是验证不应该在客户端完成。客户端浏览器可以激活/停用任何内容并更改任何值。
如果用户没有足够的权限,则根本不渲染按钮或(如果设计需要)渲染禁用的按钮而没有链接,以便用户可以通过dom操作激活而不是单击。
<% if (((int) ViewData["permission"]) >= 3) { // one of many ways to do this, perhaps not the best but quick. %>
<input type="button" />
<% } %>