首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制从ODataController访问模型属性

限制从ODataController访问模型属性
EN

Stack Overflow用户
提问于 2016-05-20 16:16:57
回答 1查看 74关注 0票数 0

我想知道如何根据用户角色限制对OData控制器中某些模型属性的访问。

例如,我有一个名为User的类如下所示:

代码语言:javascript
复制
Public class Users
{
    public int Id { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public string SSN { get; set; }
}

我有一个名为ODataController的UsersODataController,如下所示:

代码语言:javascript
复制
[EnableQuery]
public IQuerable<Users> GetUsersOData ()
{
    return db.Users.AsQueryable();
}

如何使GetUsersOData方法仅在管理员用户访问时才返回SSN属性?我能够在常规MVC控制器中实现$filter$select功能,并且只为管理员用户返回SSN属性。但是,当我查询odata (例如,http://localhost/UsersApplication/odata/UsersOData)时,我得到了包括SSN在内的所有属性。是否可以将筛选逻辑应用于UsersODataController本身,以便odata仅为管理员用户返回SSN属性?

EN

回答 1

Stack Overflow用户

发布于 2016-05-23 03:31:02

也许您可以在WebAPI/OData中使用OpenType特性,并将SSN属性放在基于角色的结果中。示例E2E测试

代码语言:javascript
复制
Public class Users
{
    public int Id { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public IDictionary<string, object> DynamicProperties { get; set; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37351324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档