• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET中等安全模式的一些经验分享

ASP.NET中等安全模式的一些经验分享

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net,c#和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
非通用型的Web程序或产品,通常不会和ASP.NET中等安全模式打交道,因为面对的用户群体会比较固定,或者部署环境是可以由程序提供者决定的。
但在做通用型的Web产品的时候,你就要和各种人打交道了,有的站长用的是国外空间,比如GoDaddy,外国的空间商通常会把ASP.NET代码执行权限控制在中等安全模式。
而在中等安全模式下,很多我们习以为常的事情都是做不了的。

中等安全模式是什么?
可能很多人都没接触过中等安全模式,我在参与bbsmax项目之前,我也不知道有中等安全模式这么个东西。
简单来说,ASP.NET提供了一个简单设置代码执行权限的方案,叫做“信任级别”。
它默认提供5种信任级别,分别是:FullTrust、High、Medium、Low、Minimal。
每个信任级别的设置,分别对应于一组代码权限设置。
这个方案,让网站部署者可以通过web.config快速设置网站的托管代码执行权限。
通过对web.config的<system.web>/<trust>节点的level属性值进行设置,就可以将ASP.NET程序设置到不同的信任级别。
ASP.NET安装完,所有网站默认都是FullTrust信任级别,也是最高信任级别。
本文说的“中等安全模式”就是对应于Medium信任级别。
因为托管代码执行权限模型不是本文讨论的重点,所以我这里只做简单的说明,不深入讨论ASP.NET安全级别设置的实现原理,实现原理可以参考本文最后给出的几个连接。

中等安全模式会有哪些影响?
以下是我和我的同事在ASP.NET中等安全模式下曾经遇到过的一些问题:
1. 基于VirtualPathProvider的模板机制不能用,因为VirtualPathProvider至少需要运行在High模式。
2. BuildProvider不能用,意味着你想自己添加自己的语言实现也不能用了,不过大部分项目不会用到这么高级的东西。
3. CodeDom、Emit不能用了,这下惨了,什么Ioc、AOP,动态注入的高科技玩意儿,全都废了,这些不是基于CodeDom的就是基于Emit的。
4. 通过aspx页面接管文件下载也不行了,Response写文件流到客户端需要更高的代码执行权限。
5. 大文件上传也别想了,因为大文件上传万变不离HttpWorkRequst,获取HttpWorkRequst的代码需要FullTrust模式。
6. SQLite不能用了,因为中等安全模式下没有非托管代码调用权限,所以除了SQLite外,涉及到非托管代码调用的,也都废掉了。
7. Access数据不能用OleDb连接了,因为中等安全模式下,OleDbClient是不能用的,你只能用ODBC数据源。
所以,如果要考虑允许让用户把程序部署到中等安全模式下,那就越早做中等安全模式的兼容性测试越好。
因为很多不能用的东西,都是涉及到基础结构的。
比如,SQLite和Access不能用,你的程序如果正巧就只做这两个数据库的版本,咋办?
比如,文件下载不能通过Response写文件流的方式,你的程序正巧又是这么做防盗链,咋办?

中等安全模式要求那么苛刻,怎么对付?
只能绕道走了,要不然怎么办?方法还是有的,得不断尝试。
VirtualPathProvider不能用,BuildProvider也不能用,但是又需要有自己的一套模板语法。那只好在页面访问前生成aspx页面,再做URL重写了。
说起来很简单,就一句话。但是这中间我不知道写了多少代码,做了多少次试验,才找到最佳方案。
所以,你的方法还是得你自己找。
以下是判断程序是否运行在中等安全模式的代码:

附录A

参考链接:

MSDN 《trust 元素(ASP.NET 设置架构)》

MSDN 《How To: Use Medium Trust in ASP.NET 2.0》

《Check Code Access Security Permissions Granted to your asp.net web application》

附录B


辰 提供的文件下载方案:
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11ASP.NET MVC5网站开发用户修改资料和密码(六)
  • 2017-05-11ASP.NET:一段比较经典的多线程学习代码
  • 2017-05-11用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
  • 2017-05-11MVC 5 第一章 创建MVC 5 web应用程序
  • 2017-05-11asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)
  • 2017-05-11C#实现HTTP协议迷你服务器(两种方法)
  • 2018-08-20完美解决api、WebService跨域的问题
  • 2017-05-11asp.net多文件上传实例讲解
  • 2017-05-11细说SQL Server中的视图
  • 2017-05-11.net GridView分页模板的实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • GridView选择性导出Excel解决方案
    • 基于Unity容器中的对象生存期管理分析
    • Asp.Net类型转换类(通用类)代码分享
    • Visual Studio 2017正式版离线安装教程
    • gridview中实现radiobutton的单选示例
    • .Net中实现无限分类的2个例子
    • ASP.NET 使用application与session对象写的简单聊天室程序
    • Asp.net中把Excel数据存储至SQL Server中的具体实现方法
    • ASP.NET中获取URL重写前的原始地址详解
    • ASP.Net开发常见的一些问题总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有