问题
我是一个 ASP.NET 新手,我的任务是创建一个多用户密码管理系统,以便在安全的 Intranet 中使用。本质上,用户将通过 Windows 身份验证自动登录,然后根据他们的组为他们提供适当的视图。例如,组“admin”的用户将能够访问所有密码条目,组开发人员的用户将能够访问属于“开发人员”活动目录组中用户的所有密码条目。用户应该能够创建、更新和隐藏(删除)密码条目。
到目前为止我所拥有的
到目前为止,我基本上一直在弄清楚什么是不可能的,什么是不可能的,并研究技术。Windows 身份验证本身似乎很简单,但是当我启用角色提供程序时它会中断,这似乎是为用户提供不同视图所必需的。“中断”是指仍能识别特定用户,但不能识别整个组。
必须自动提供不同的视图,我提出了两种技术来做到这一点:
检查主控制器上的角色(组),并提供适当的视图。然而,这将需要一长串凌乱的“if”语句。
提供共同视图,并允许或禁止根据组查看某些元素。这需要在一个视图中放置很多逻辑,据我所知,这是不合适的。
将有一个 password.cs 模型类,它将保存有关密码条目的所有信息,包括哪些组应该有权访问它。我真的想不出任何其他必要的模型,因为不需要存储用户信息。
安全问题
我知道将此类敏感数据存储在一个位置可能会导致灾难。密码将使用我也可以访问的预先存在的库进行适当加密。我会在这方面得到帮助。此外,密码将不会在系统上以纯文本形式显示,以避免肩窥,但将显示为星号,并可复制到用户剪贴板。
我的问题
本质上,我想就如何构建系统以及使用 Windows 身份验证启用活动目录授权的最简单方法提出一些建议。我想就如何为用户提供适当的视图以及不同区域应如何组合在一起获得一些建议。我并没有明确要求有关密码安全方面的任何帮助,但任何见解或讨论都将受到热烈欢迎。从本质上讲,我非常感谢任何帮助、教程链接或建议的阅读材料。
我的工具
我可以随意使用 Visual Studio Professional 2010、MVC 4.0 和 .NET Framework 4.0,以及对服务器的标准(非管理员)访问权限。
明天我将能够提供我目前拥有的实验代码(格林威治标准时间 22:30,我明天早上会回到办公室)。如果您需要更多信息,请告诉我。