使用asp.net授权限制从db访问某些数据

时间:2017-07-18 22:37:02

标签: c# asp.net asp.net-mvc entity-framework model-view-controller

假设我有一个表格X,其中包含以下列:NameRole。主页面显示表格Name'sX的列表。以某个特定用户身份登录(分配了ASP.NET角色)时,我希望仅显示Name's与当前登录用户匹配的行显示Role列表。是否可以通过例如以某种方式装饰EF功能?我想在应用程序中调用if's的所有地方避免使用加密GetList

我首先使用EF 6和db,ASP.NET,MVC 6。

修改

GetList方法是GenericDataRepository的一部分:

    public virtual IList<T> GetList(Expression<Func<T, bool>> where, params Expression<Func<T, object>>[] navigationProperties)
    {
        IQueryable<T> dbQuery = this.Context.Set<T>();

        foreach (var navigationProperty in navigationProperties)
        {
            dbQuery = dbQuery.Include(navigationProperty);
        }

        var list = dbQuery.AsNoTracking().Where(@where).ToList();

        return list;
    }

1 个答案:

答案 0 :(得分:0)

你想要一个business layerGetList变为GetListForUserRole并获取角色参数。然后,应用程序的多个部分可以调用此方法并为其提供角色。