Asp.net mvc身份验证在会话中存储Active Directory组

时间:2018-03-27 01:27:51

标签: c# asp.net-mvc authentication active-directory

我目前正在开发外部网络应用程序。我开始研究安全问题了。例如,这是一个课程注册系统,有管理员,学生和教师。只有管​​理员应该能够添加教师,所以我需要锁定该部分。我已经找到了如何使用活动目录进行身份验证并恢复用户配置文件。我的想法是将用户Active Directory组存储在会话中,并使用它来确定用户可以看到的内容。我的问题是我似乎无法弄清楚如何在会话中存储AD组。例如,假设管理员位于名为SYSTEM-ADMIN的组中。如何将其放入会话中以使用它来保护我的网站。我以前从来没有这样做,似乎没有找到如何在会话中添加这样的东西。我相信它会涉及使用该组为用户提供特定角色并将角色存储在会话中?任何帮助/资源将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我需要做一些与我预期不同的事情 首先创建一个枚举:

public enum Role
{
                Admin,
                Teacher,
                Student
}

创建一个类:

public class SessionObject
{
                public Role UserRole { get; set; }
}

创建会话对象并设置Role属性,然后将其分配给会话:

SessionObject oSessionObject = new SessionObject { Role = Role.Admin };
Session[“SessionObject”] = oSessionObject;

if (Session[“SessionObject”] != null)
{
                vm.SessionObject = ((SessionObject) Session[“SessionObject”]);
}

然后,您只需检查vm.SessionObject.Role以查看用户的角色。