从C#

时间:2018-06-12 07:34:35

标签: c# nhibernate authorization

我正在为我的应用程序实现一些授权。我想实现具有某种角色和权限的用户只能看到一些属性。看看:

// User Model
string lastname;
string firstname;
string birthdate;

我们假设用户是管理员,因此他可以看到所有用户他不允许看到用户生日。

我创建了一个返回所有允许属性列表的类(因为你只看到名字和姓氏):

public class AllowedAttributes
{
    private List<string> AllowedAttributes = new List<string>();

    public AllowedAttributes()
    {
        this.AllowedAttributes.Add("lastname");
        this.AllowedAttributes.Add("firstname");
    }

    public List<string> GetAllowedAttributes()
    {
        return this.AllowedAttributes;
    }
}

我的NHibernate查询如下所示:

AllowedAttributes attributes = new AllowedAttributes();

        var user = sessionService.GetDefaultSession()
            .Query<User>()
            // something like...
            // .Select(attributes.GetAllowedAttributes())
            .ToList();

有人可以用正确的NHibernate查询帮助我吗?我只想获得列表中指定的属性。

P.S。在我的应用程序中,列表更长,所以只输入属性不起作用。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

您可以使用NHibernate投影来实现此目的。 请按照此条目获取更多信息。 Can someone better explain what 'Projections' are in nHibernate?