- 使用 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 部署配置
- 使用专门的错误日志系统
- 安全回顾和有用资源