我正在使用 Visual Studio 2011 beta 开发一个新的 asp.net mvc4 项目,并试图了解整个安全问题。它是一个内部 Intranet 应用程序,最初将使用单点登录,因此(还)不会提示用户输入 Windows ID/密码。该公司有一个自定义应用程序,用于存储不同应用程序的角色,并可通过存储过程调用获得。它将获取用户的登录 ID 并返回某种包含角色的集合,例如“MyApp.Data”、“MyApp.User”、“MyApp.Admin”。所以这被称为 - 这是一个自定义成员资格提供程序,自定义角色提供者还是别的什么?
我一直在阅读有关授权、身份验证、成员资格、角色等的所有细节,目前我看不到树木的木材。我读过现有的 ASP.NET 安全对象已经过试验和测试,除非有非常复杂的要求,否则内置的就足够了,所以我很乐意使用已经存在的东西。
因此,如果用户已经登录到网络,这意味着他们已经过身份验证 - 对吗?如果是这样,那么我只需要实现授权。是否需要用 Authorize 属性来装饰每个 Controller 或 Action?如果是这样,如果我从自定义角色存储应用程序中检索角色,[Authorize(Roles = "ABC")] 的“ABC”部分如何设置?
我阅读了几篇文章和博客文章,包括 Jon Galloway 的这篇文章,但最后我迷路了:
这么多问题......如果有人知道所有这些如何联系在一起的良好高级描述,那么我会全神贯注:)