MVC中的成员资格,授权,安全性

时间:2020-12-20 17:33:43
  • 使用 Authorize 特性登录

  Authorize 是 ASP.NET MVC 自带的默认授权过滤器, 可用来限制用户对操作方法的访问.

    • 保护控制器操作
      •   
    • Authorize 特性在表单身份验证和 AccountController 控制器中的用法
      •   ASP.NET MVC 的Internet Application 模板包含一个基本的 AccountController, 它支持 ASP.NET Membership 和 OAuth 验证的账户管理.
    • Intranet Application 模板中的 Windows Authentication

      使用 Windows Authentication 可在 Web 应用程序之外处理 Registration 和 Log On 操作, 该模板不要求提供 AccountController 及其相关模型和视图. 

    • 整个控制器的安全性

      从匿名的购物车到要求注册的结算的过度, 可以通过在控制器 CheckoutController 上添加 Authorize 特性来满足结算对授权的要求. 

    • 使用全局授权过滤器保障整个应用程序安全

      把AuthorizeAttribute 配置为全局过滤器, 使用 AllowAnonymous 特性匿名访问指定控制器或方法.

  •   要求角色成员使用 Authorize 特性

      Authorize 特性允许指定角色和用户.

    • 扩展角色和成员
      •   ASP.NET MVC 中的身份验证和授权建立在 System.Web.Security 名称空间的 Role 类和 Membership 类之上.
  • 通过 OAuth 和 OpenID 的外部登录

  OAuth 和 OpenID 是开放的授权标准, 这些协议允许用户使用它们已有的账户登录我们的网站, 这些账户必须来自他们信任的网站.

    • 注册外部登录提供器
      •   在 App_Start\AuthConfig.cs 中配置授权提供程序.
    • 配置 OpenID 提供器
    • 配置 OAuth 提供器
    • 外部登录的安全性
  • Web 应用程序中的安全向量
    •   威胁: 跨站脚本
    • 威胁: 跨站请求伪造
    • 威胁: cookie 盗窃
    • 威胁: 重复提交
    • 威胁: 开放重定向
  • 适当的错误报告和堆栈跟踪
    •   使用配置转换
    • 在生产环境中使用 Retail 部署配置
    • 使用专门的错误日志系统
  • 安全回顾和有用资源