亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

ASP.NET中等安全模式的一些經驗分享

2024-07-10 13:26:39
字體:
來源:轉載
供稿:網友
非通用型的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重寫了。
說起來很簡單,就一句話。但是這中間我不知道寫了多少代碼,做了多少次試驗,才找到最佳方案。
所以,你的方法還是得你自己找。
以下是判斷程序是否運行在中等安全模式的代碼:

復制代碼 代碼如下:


if (SecurityManager.IsGranted(new AspNetHostingPermission(AspNetHostingPermissionLevel.Medium)))
{
}


如果有遇到不是必須執行的邏輯,比如獲取程序內存占用率或者大文件上傳,那就可以先判斷下,再決定是否調用。
根據資料顯示,把程序集部署到GAC中,可以獲得FullTrust級別的權限,不過我沒有實際試過。
附錄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
辰 提供的文件下載方案:

復制代碼 代碼如下:


protected override void OnInit(EventArgs e)
{
Response.ContentType = "application/octet-stream";
using (FileStream stream = File.Open(Server.MapPath("~/test.txt"), FileMode.Open))
{
BinaryWriter writer = new BinaryWriter(Response.OutputStream);
byte[] buffer = new byte[1024];
int l = 0;
while ((l = stream.Read(buffer, 0, buffer.Length)) > 0)
{
writer.Write(buffer, 0, l);
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品亚洲一区二区| 一道本无吗dⅴd在线播放一区| 亚洲国内精品视频| 91精品国产综合久久久久久久久| 日韩视频第一页| 最近中文字幕日韩精品| 91精品视频观看| 97视频在线观看成人| 成人久久久久久| 中文字幕精品影院| 欧美精品生活片| 成人字幕网zmw| 69久久夜色精品国产69乱青草| 国产精品专区一| 亚洲人午夜精品免费| 亚洲精品国产成人| 国产精品尤物福利片在线观看| 91禁外国网站| 亚洲第一偷拍网| 国内免费久久久久久久久久久| 亚洲国产日韩欧美综合久久| 国产成人精品一区二区| 日韩av一卡二卡| 一本色道久久综合狠狠躁篇的优点| 久久久999国产| 日本欧美在线视频| 亚洲国产成人精品女人久久久| 日韩在线观看精品| 最近2019年好看中文字幕视频| 国产69精品久久久久9| 亚洲欧洲国产精品| 成人www视频在线观看| 97超级碰碰碰久久久| 视频在线观看99| 97香蕉超级碰碰久久免费软件| 精品无人区太爽高潮在线播放| 国产精品久久久久久久久久| 精品激情国产视频| 午夜精品一区二区三区在线视频| 精品一区二区三区四区在线| 亚洲国产日韩欧美综合久久| 欧美日韩精品国产| 亚洲欧美中文字幕| 亚洲自拍偷拍一区| 国产精品久久999| 日本最新高清不卡中文字幕| 国产精品日韩在线播放| 亚洲黄页网在线观看| 狠狠躁夜夜躁久久躁别揉| 国产视频福利一区| 欧美日韩国产中文精品字幕自在自线| 国产剧情日韩欧美| 久久久日本电影| 不卡av电影在线观看| 97视频在线免费观看| 欧美在线观看一区二区三区| 亚洲第一精品久久忘忧草社区| 久久久成人精品视频| 日韩欧美国产免费播放| 亚洲女人天堂网| 日韩精品999| 色综合91久久精品中文字幕| 欧美日韩国产在线看| 亚洲日韩欧美视频| 成人97在线观看视频| 美女性感视频久久久| 日韩网站免费观看高清| 国产国语刺激对白av不卡| 色噜噜国产精品视频一区二区| 久久久久久午夜| 在线a欧美视频| 欧美黑人巨大xxx极品| 亚洲国产精品嫩草影院久久| 日韩在线视频线视频免费网站| 久久香蕉国产线看观看网| 日韩欧美精品在线观看| 日韩成人激情影院| 8x海外华人永久免费日韩内陆视频| 国产视频亚洲精品| 亚洲国产精彩中文乱码av在线播放| 亚洲精品日韩在线| 国产日产欧美a一级在线| 亚洲精品短视频| 欧美有码在线观看视频| 亚洲精品欧美日韩| 日韩欧美亚洲综合| 国产欧美亚洲视频| 亚洲欧美激情精品一区二区| 少妇高潮 亚洲精品| 51ⅴ精品国产91久久久久久| 欧美在线视频播放| 色婷婷亚洲mv天堂mv在影片| 91高清免费视频| 欧美www在线| 在线成人免费网站| 色中色综合影院手机版在线观看| 国产精品视频男人的天堂| 日韩在线视频免费观看高清中文| 欧美成人免费一级人片100| 久久久久久com| 夜夜嗨av一区二区三区四区| 狠狠色狠色综合曰曰| 91精品国产免费久久久久久| 亚洲精品乱码久久久久久按摩观| 亚洲精品国产精品乱码不99按摩| www亚洲欧美| 国产精品久久久久久亚洲影视| 国产精品人人做人人爽| 精品久久久久久中文字幕一区奶水| 成人444kkkk在线观看| 国产一区二区三区在线观看网站| 午夜欧美大片免费观看| 日韩视频中文字幕| 亚洲性视频网址| 午夜精品久久久99热福利| 精品国偷自产在线| 国产精品青青在线观看爽香蕉| 成人黄色免费网站在线观看| 久久露脸国产精品| 国产精品高潮呻吟久久av无限| 97在线免费观看| 一区二区三区久久精品| 国产自摸综合网| 午夜精品久久久久久久99热| 久久国产精品久久精品| 欧美性在线观看| 尤物tv国产一区| 亚洲免费视频在线观看| 97免费在线视频| 日韩欧美在线观看| 欧美精品videosex牲欧美| 国产亚洲精品成人av久久ww| 亚洲第一二三四五区| 日韩一二三在线视频播| 国产精品999999| 91免费视频国产| 国产97色在线|日韩| 国产精品久久久久久久天堂| 欧美限制级电影在线观看| 欧美激情女人20p| 91久久精品久久国产性色也91| 欧美色另类天堂2015| 国产不卡一区二区在线播放| 欧美猛少妇色xxxxx| 亚洲在线免费观看| 久久中文字幕在线视频| 精品av在线播放| 亚洲精品在线看| 97不卡在线视频| 成人网欧美在线视频| 性欧美视频videos6一9| 亚洲free性xxxx护士hd| 日韩av大片在线| 成人欧美一区二区三区黑人孕妇| 中文字幕一精品亚洲无线一区| 一区二区三区日韩在线| 91精品国产自产在线观看永久| 日韩有码视频在线| 日韩电影中文字幕一区| 精品欧美激情精品一区| 在线播放日韩欧美| 亚洲黄色片网站| 中文字幕亚洲无线码在线一区| 日韩在线视频线视频免费网站|