具有数据权限的Asp.Net MVC模型验证

时间:2014-04-30 04:26:22

标签: asp.net-mvc security validation model

我在UI上有一个下拉列表,其中包含从数据库填充的数据。我有2个角色user和admin。 如果用户无权访问如下所示的数据,我们是否可以根据模型属性显示错误。

[permission]
public details {get; set; }

我正在尝试向用户显示验证消息,例如"您没有权限访问下拉列表"。如果我可以使用[authorize]并显示错误消息,你能告诉我一些想法吗?

2 个答案:

答案 0 :(得分:0)

  1. 我不知道如何在您的应用程序中控制权限。你可能会在这里找到实现灵感的灵感:

    http://typecastexception.com/post/2013/11/11/Extending-Identity-Accounts-and-Implementing-Role-Based-Authentication-in-ASPNET-MVC-5.aspx

    在这里:

    Access Control in ASP.NET MVC using [Flags] based Enum to int permissions management in SQL

  2. 根据(角色)权限限制对用户控件的访问的最原始方法是将其隐藏在不受欢迎的用户之外:

    @if(User.IsInRole("Admin")) {
        @Html.DropdownListFor(
            expression: m => m.SelectedItemId, 
            selectList: Model.YourCollection, 
            optionLabel: "some text"
        )
    }
    

答案 1 :(得分:0)

您也可以像这样使用AuthorizeAttribute。

public class FVAuthorizeAttribute : AuthorizeAttribute
{
    private readonly bool _authorize;
    private readonly string[] _roles;

    public FVAuthorizeAttribute()
    {
        _authorize = true;
    }



}

然后使用类似

的内容

[FVAuthorize(Roles =“Administrator,NameOfMethodHereThatCreatesDropdown”)]

公开详情{get;组; }