ASP.NET MVC - 根据用户角色获取数据库数据

Posted

技术标签:

【中文标题】ASP.NET MVC - 根据用户角色获取数据库数据【英文标题】:ASP.NET MVC - Get database data depending user role 【发布时间】:2014-08-19 03:19:29 【问题描述】:

我对 MVC 和数据库的东西还很陌生。

我需要做的是根据用户的角色检索数据。我可以从下表中获取所有数据,但我只需要显示特定数据。

tableId roleId data1 data2 data3 1 1 一些数据 一些数据 一些数据 2 1 一些数据 一些数据 一些数据 3 1 一些数据 一些数据 一些数据 4 2 一些数据 一些数据 一些数据 5 2 一些数据 一些数据 一些数据 6 3 一些数据 一些数据 一些数据

如果用户登录并分配了一个角色,我将如何从表中获取该角色的数据? 如果我被分配了roleId 1,我应该只能看到roleId = 1 的表中的数据。

我还在学习,这将是非常棒的帮助。

谢谢!

我的代码:

控制器

    private projectEntities db = new projectEntities();

    // GET: /Assessment/
    public ActionResult Index()
    
        //return View(db.Scales.ToList());
        var data = new ModelServices().GetScale();
        return View(data);


    

型号

public class ModelServices : IDisposable

    private readonly projectEntities entities = new projectEntities();
    public IEnumerable GetScale()
    
        return entities.Scales.ToList();
    
    public void Dispose()
    
        entities.Dispose();
    

查看:

@model IEnumerable<project.Models.Scale>
@
WebGrid grid = new WebGrid(Model);   


@grid.Gethtml()

【问题讨论】:

"我可以从下表中获取所有数据,但我只需要显示特定数据。"如何?您使用的是 SQL 查询吗? LINQ? 你总是可以使用returnedDataSet.Where(c => c.roleId == 1);返回roleId = 1的行,其中returnedDataSet是您检索到的“表中的所有数据”。 @StriplingWarrior - 使用 Linq。 @user3606394:您能否提供代码 sn-p 来展示您如何首先获取该表的数据?这使人们更容易为您提供代码示例来展示如何做您想做的事情。 如果您的视图模型是IEnumerable&lt;project.Models.Scale&gt; 类型,那么为什么您的服务方法只返回IEnumerable 类型?该服务应该返回与您的视图使用的相同的泛型类型。 【参考方案1】:

我会像这样创建一个新的服务方法:

public IEnumerable<Scale> GetScalesWithRole(int roleId)

    return entities.Scales.Where(s => s.RoleId == roleId).ToList();

【讨论】:

以上是关于ASP.NET MVC - 根据用户角色获取数据库数据的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net Mvc 使用用户角色编辑用户配置文件

MVC 3 ASP.NET 角色-授权属性

如何在 ASP.NET MVC 中手动设置用户角色?

带有权限代码的 ASP.NET MVC 4 自定义授权属性(无角色)

对ASP.NET MVC的角色(外部数据库)进行硬编码并添加Windows Authenticated Users

ASP.net Identity 2.1 获取所有具有角色的用户