MVC 成员资格、授权和安全性

要求用Authorize 特性登陆

  要求登陆系统的用户访问哪些由应用程序指定的 URL。我们可以通过使用控制器上或者控制器内部特定操作上的Authorize 操作过滤器来实现。

Authorize:特性是 ASP.NET MVC 自带的默认授权过滤器,可用来限制用户对操作方法的访问。将该特性应用与控制器,就可以快速将其应用与控制器中的每个操作方法。

1.Authorize 在表单身份验证和 AccountController 控制器中的用法

  *ASP.NET MVC 的 Internet Applicaton 模板包含一个基本的 AccountController ,它支持 Membership 和 OAuth验证的账户管理。

  *Authorize 特性是一个过滤器,也就是说,它能优先于相关控制器操作执行。即 Authorize 特性首先执行它在 OnAuthorization 方法中的主要操作,如果用户身份验证失败,它将产生HTTP 401(未授权)的状态码,并重定向到应用程序 web.config 文件中定义的登陆页面,代码如下:

  <authentication mode="Forms">

    <forms loginUrl="~/Account/LogOn" timeout="2880">

  </authentication>

  这个重定向地址包含一个返回URL,以便成功登陆系统后,Account/LogOn 操作可以重定向到最初的请求页面。

  *CheckoutController 上加入特性[Authorize] 中的所有操作都允许注册用户访问,但禁止匿名访问。

 

要求角色成员使用 Authorize 特性

fh

Web应用程序中安全向量的用法

fh

防御性编码

fh

总结

  *永远都宎醒醒用户提供的任何数据

  *每当渲染作为用户输入而引入的数据时,请对其进行HTML编码,如果数据作为特性值显示,就应对其进行HTML 特性编码(HTML-attribute-encode))

  *考虑好网站的那些部分允许匿名访问,那些部分要求认证访问

  *不要试图自己净化用户的HTML输入(使用白名单或其他方法)——否则就会失败

  *在不需要通过客户端脚本(大部分情况下)访问cookic时,使用 HTTP - only cookie

  *请记住,外部输入不是显示的表单域,因为它包括 URL 查询字符串、隐藏表单域、Ajax请求以及我们使用的外部Web服务结果等

  *强烈建议使用 AntiXSS 库(www.codeplex.com/AntiXSS)

 

MVC 成员资格、授权和安全性,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。