【问题标题】:Asp.net mvc authentication storing Active Directory groups in a sessionAsp.net mvc 身份验证在会话中存储 Active Directory 组
【发布时间】:2018-03-27 01:27:50
【问题描述】:
我目前正在开发一个外部 Web 应用程序。我开始从事安全工作。例如这是一个课程注册系统,有管理员、学生和教师。只有管理员才能添加讲师,所以我需要锁定该部分。我已经弄清楚如何使用活动目录进行身份验证并恢复用户配置文件。我的想法是将用户 Active Directory 组存储在会话中,并使用它来确定用户可以看到的内容。我的问题是我似乎无法弄清楚如何在会话中存储 AD 组。例如,假设管理员在一个名为 SYSTEM-ADMIN 的组中。如何将其放入会话中以使用它来保护我的网站。我以前从来没有这样做过,而且似乎找不到太多关于如何将这样的东西添加到会话中的信息。我相信这将涉及使用该组为用户赋予特定角色并将该角色存储在会话中?任何帮助/资源将不胜感激。谢谢。
【问题讨论】:
标签:
c#
asp.net-mvc
authentication
active-directory
【解决方案1】:
我需要做一些与我预期不同的事情
首先创建一个枚举:
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 以查看用户是什么角色。