代码之家  ›  专栏  ›  技术社区  ›  J Lundberg

MVC路由与授权/授权标签

  •  2
  • J Lundberg  · 技术社区  · 17 年前

    我正在编写一个MVC应用程序,它有两个分支从一开始就可以运行。在path上使用一个pin进行授权,我使用表单身份验证来限制对代码这一部分的访问。但是,另一条路径将接受广告登录,我需要阻止人们使用URL在分支之间移动。我应该使用自定义路由还是创建两个单独的授权属性来限制访问。

    谢谢

    1 回复  |  直到 17 年前
        1
  •  2
  •   tvanfosson    17 年前

    您可以使用角色来处理现有的 AuthorizeAttribute . 只需将您的AD授权用户放入特定角色,然后在需要AD登录的路径中,将该控制器/方法的角色设置为需要AD角色。这将需要执行 RoleProvider 这看起来有点让人望而生畏,但实际上并没有那么糟糕。将用户的角色缓存在cookie中,这样您就不必每次都查找它们。这里的优势在于,随着应用程序变得更加复杂,这将扩展到其他角色。

    或者,可以扩展现有的authorizeAttribute,重写 OnAuthorization 并使用您的自定义版本。此属性可以检查以确保请求不仅得到授权,而且具有正确的凭证类型。凭证类型可以在登录时存储在会话中,并从中为经过身份验证的用户检索。这写起来比较简单,但也不能按比例缩放。