网站首页  注册会员  本站免费电影 留言板  繁體中文

 

您现在的位置: 陈鹏个人网站 >> 电脑应用 >> 网络应用 >> 网络安全 >> 正文
 

|
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮村Δ鈧禍鎯ь渻閵堝簼绨婚柛鐔告綑閻g柉銇愰幒婵囨櫔闂佸憡渚楅崹浼村极閹间焦鈷掑〒姘e亾闁逞屽墰閸嬫盯鎳熼娑欐珷闁规鍠氱壕濂稿级閸稑濡兼繛鎼枟椤ㄣ儵鎮欑€涙ê纾冲Δ鐘靛仦鐢帡鍩為幋锕€閱囨繝闈涙搐閳ь剦鍨跺铏规嫚閸欏鏀銈庡亜椤︻垳鍙呭┑鈽嗗灣閸樠囧垂濠靛鐓欓柟瑙勫姦閸ゆ瑧绱掗悩鍙夎础闁瑰弶鎮傞幃褔宕煎┑鍛灁闂備浇妗ㄧ粈渚€宕幘顔艰摕闁靛ǹ鍎弨浠嬫煕閳╁厾顏勨枍閿濆棛绡€缁剧増锚婢ф彃鈹戦悙璇у伐妞ゎ偄绻掔槐鎺懳熺拠宸偓鎾绘⒑閸涘﹦鈽夐柨鏇樺劦瀹曟洟骞樼紒妯锋嫼闂佸憡绺块崕鍗炩枍韫囨稒鐓曢悗锝庝悍瀹搞儵鏌i敐鍥у幋妤犵偛娲、娑樜熺憴鍕綎闂傚倷绀佸﹢閬嶅磿閵堝鍨傞柤绋跨仛缂嶅洭鏌涢鐘插姕妞ゃ儱锕ラ妵鍕箛閳轰胶浠炬繝銏f硾鐎氫即寮婚悢鍓叉Ч閹兼番鍨瑰▓宀勬⒑鐎圭姵顥夋い锕€鐏氶幈銊╁焵椤掑嫭鐓冮柍杞扮閺嗙偤鏌e┑鍥р枙婵﹦绮幏鍛存惞楠炲簱鍋撴繝鍥ㄧ厱闁规儳顕粻鐐烘煙椤旀儳鍘村┑锛勫厴閸┾剝鎷呴崫鍕疄闂佽楠搁崢婊堝磻閹剧粯鐓曢柡鍥ュ妼閸樻挳鏌熼柨瀣仢婵﹤顭峰畷鎺戭潩閸楃儐鏉哥紓鍌欑椤戝棛鏁敓鐘叉瀬鐎广儱顦猾宥夋煕椤愩倕鏋旈柛妯兼暬濮婃椽宕ㄦ繝鍌滀户闂佺ǹ锕ラ悧婊堝焵椤掍胶鍟查柟鍑ゆ嫹
|
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛銈呭閺屾盯顢曢敐鍡欘槰闂佽鍨抽崑銈夌嵁閺嶎灔搴敆閳ь剚淇婃總鍛婄厽妞ゆ挾鍣ュ▓婊勵殽閻愬澧懣鎰亜閹哄棗浜炬繝寰枫倕浜圭紒杈ㄥ浮閸┾偓妞ゆ帒瀚壕鍏肩箾閹寸偞鐨戞い鏃€娲熷娲偡闁箑娈堕梺绋匡攻閸ㄧ敻锝炲┑鍫熷磯闁告繂瀚▓銈夋⒑閻熸澘鎮戦柣锝庝邯瀹曟繂顓兼径瀣簵闂婎偄娲︾粙鎾诲矗閹剧粯鐓曢柕澶樺枤娴滀粙鏌涢鐘插姎缁炬儳顭烽弻鐔煎箚瑜忛敍宥夋煛閸☆厾鐣甸柡灞剧洴婵$兘濮€閳╁啰褰囬柣搴ゎ潐閹搁娆㈠顒夋綎濠电姵鑹剧壕鍏肩箾閸℃ê鐒炬俊宸櫍濮婂搫效閸パ€鍋撻弴鐏绘椽濡舵径鍫氬亾閸涱喚闄勭紒瀣嚦閳哄懏鐓冮柛婵嗗閳ь剛枪閳绘捇骞嬮敂瑙f嫼闂佸憡鎸昏ぐ鍐╃濠靛洨绠鹃柛娆忣槺婢х數鈧娲栫紞濠傜暦閹烘鍊烽悗鐢登瑰鎶芥⒒娴h櫣甯涙繛鍙夌墵瀹曟劙宕烽娑樹壕婵ḿ鍋撶€氾拷
|
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁惧墽绮换娑㈠箣濞嗗繒浠鹃梺绋款儍閸婃繈寮婚弴鐔虹鐟滃秹骞婃惔銊ユ辈婵°倕鎳忛埛鎴犵磼鐎n厽纭堕柣蹇涗憾閺屾稓鈧綆鍋嗛妴鎺旂磼椤旇偐澧︾€规洘锕㈤、娆撴偩鐏炶棄绗氶梻鍌欑閹诧紕鎹㈤崒婧惧亾濮樼厧澧撮柛鈹惧亾濡炪倖甯婇悞锕傚磹閹邦喒鍋撶憴鍕缂侇喗鎹囬妴浣肝旈崨顓狀槹濡炪倖鍨兼慨銈団偓姘偢濮婃椽鎳¢妶鍛呫垺绻涘ù瀣珖濞存粎枪閳诲酣骞樺畷鍥舵П闂備線娼荤€靛矂宕㈤崜褍顥氬┑鍌氭啞閻撶姷鐥弶鍨埞濠⒀傚嵆閹粙顢涘☉姘モ偓鎺旂磼鏉堛劌娴€殿噮鍣e畷鎺戭潩椤撶姳閭梺璇叉唉椤煤閺嶎厼围闁告稑锕g换鍡涙煟閹达絾顥夐崬顖炴偡濠婂啰绠伴柣锝囧厴瀹曞ジ寮撮悢鍙夊濠电偠鎻紞鈧┑顔哄€楀☉鐢稿醇閺囩喓鍘遍梺鎸庣箓缁绘帡鎮鹃崹顐闁绘劘灏欑粻濠氭煛娴h宕岄柡浣规崌閺佹捇鏁撻敓锟�
|
闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴姘辩Т闂佹悶鍎洪崜姘舵倿閼测斁鍋撻獮鍨姎闁硅櫕鍔欓弫宥夋偄閸忓皷鎷洪梺闈╁瘜閸樺ジ銆傞崗鑲╃瘈闁靛繆妲勯懓璺ㄢ偓瑙勬礀缂嶅﹤鐣烽幒鎴旀闁哄稄濡囬惄搴ㄦ⒒娴e憡鎯堢紒澶嬬叀瀹曟繂鐣濋崟顒€鈧法鎲搁悧鍫濈瑲闁绘挻鐩幃妤呮晲鎼存繈鍋楅梺鍛婄懃鐎氫即寮婚敍鍕勃闁绘劦鍓涢ˇ顔剧磽娴e搫校缂佸甯為幑銏犫攽鐎n亞顦ㄩ梺闈涒康婵″洩銇愰幘顔解拻闁稿本鐟ㄩ崗宀勫几椤忓懌浜滈柟瀛樼箖椤ャ垺顨ラ悙鏉戝妤犵偞鐗楅幏鍛村传閵夈儱缁╂繝鐢靛О閸ㄧ厧鈻斿☉銏℃櫇闁挎洖鍊稿Ч鏌ユ煥閺囩偛鈧綊鎮¢弴銏$厪濠㈣泛鐗嗛悘顏呯箾閸涱厽顥炵紒缁樼洴瀹曞ジ鎮㈤幖鐐拌檸婵犳鍠栭敃銊モ枍閿濆绠柣妯款嚙缁犵敻鏌熼悜妯肩畵濠碉紕鍏樺缁樻媴閾忕懓绗″┑鈽嗗亜缁绘ê鐣峰⿰鍫熷亜闁兼祴鏅涚粊锕傛椤愩垺澶勭紒瀣浮瀵煡骞栨担鍦弳闂佺粯娲栭崐鍦偓姘炬嫹
|
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顕€姊哄Ч鍥р偓銈夊窗濡ゅ懎桅闁告洦鍨伴崘鈧銈嗗姦濠⑩偓缂侇喖鐖煎娲箹閻愭彃顬堥梺绋匡工濞尖€愁嚕鐠囨祴妲堥柕蹇婂墲濞呭棝鏌i悩鍙夊鐟滄澘鍟扮划鏄忋亹閹烘挴鎷洪梺纭呭亹閸嬫稒淇婇悾宀€纾奸悹鍥皺婢э妇鈧鍠栭…閿嬩繆閸洖鐐婇柍鍝勫暟閸橆垶姊洪懡銈呅eù婊€绮欏畷婵堚偓锝庡墮閸ㄦ繈鏌i姀鐘冲暈闁抽攱鍨圭槐鎺斺偓锝庡亜椤曟粓鏌熼惂鍝ョМ闁哄本鐩幃鈺佺暦閸パ€鎷伴柣搴㈩問閸犳牠鈥﹂悜钘夋瀬闁瑰墽绮崑鎰版煠绾板崬澧绘俊韫嵆濮婄粯绗熼埀顒€岣胯閻忔瑩姊虹粙鍨槰闁革綇绲介悾鐑藉箣閿曗偓缁犵粯顨ラ悙灞備粧婵顨婂娲捶椤撶偛濡洪梺鎼炲姀閸╂牕岣胯箛娑橀唶闁靛鑵归幏娲煟閻樺厖鑸柛鏂胯嫰閳诲秹骞囬悧鍫㈠幍闂佸憡鍨崐鏍偓姘炬嫹
|
IT闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珖闂侀€炲苯澧板瑙勬礉閵囨劙骞掗幘璺哄箺闂備胶顢婇幓顏嗗緤妤e叝澶嬪緞瀹€鈧Λ顖涖亜閹惧鈽夊ù婊堢畺濮婂宕掑▎鎴М闂佺顕滅换婵嗙暦濠靛鍗抽柣鎰Ф閸犳劗鎹㈠┑瀣<婵☆垰鍢叉禍楣冩煙閻戞ɑ灏电紒鈾€鍋撴繝娈垮枟閿曗晠宕㈡ィ鍐ㄧ煑闁糕剝绋掗埛鎴犵磽娴h偂鎴犵矆閳ь剟姊虹粙鍖″伐婵犫偓闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗
|
闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗霉閿濆浜ら柤鏉挎健濮婃椽顢楅埀顒傜矓閹绢喖纾奸柕濞у嫬鏋戦梺鍝勫暙閻楀棛绮婚弽銊х鐎瑰壊鍠曠花濠氬箚閻斿吋鈷戦梻鍫熶緱濡牓鏌涢悩鎰佹畼缂佽京鍋為幆鏃堝閵忋垻妲囬梻浣圭湽閸ㄨ棄岣胯閻楀酣姊绘担鍝勫付缂傚秴锕︾划濠氬冀瑜滈崵鏇㈡煕濞戞﹫鍔熼柣鐔风秺閺屽秷顧侀柛鎾跺枎椤曪絾绻濆顒€宓嗛梺闈涚箳婵炩偓闁哥偠娉涢埞鎴︽偐閼碱兛绮甸梺鍛婃⒐閻楁粓鎮疯缁辨捇宕掑顑藉亾閻戣姤鍤勯柤鎼佹涧閸ㄦ梹銇勯幘鍗炵仼闂傚偆鍨堕弻銊モ攽閸♀晜笑闂佽棄鍟伴崰鎾诲焵椤掆偓缁犲秹宕曢柆宥嗗亱婵犲﹤鍠氶悗鍫曟煏婵炵偓娅嗛柍閿嬪灴閺屾稑鈽夊鍫熸暰闁诲繐绻嬮崡鎶藉蓟閿濆鍋勯柛娆忣槹閻濇岸姊洪棃娑欘棛缂佲偓娓氣偓閸┿垺鎯旈妸銉ь唺闂佸搫鍟崐鐟邦熆閹寸偟绡€闁汇垽娼ф禒锕傛煕閵娿儳鍩i柟顔惧厴閺佸啴鍩€椤掑嫬鐓濈€广儱顦~鍛存煏閸繃顥戦柟閿嬫そ閺岋綁鎮╅崗鍛板焻闂佸憡鏌ㄩ懟顖炲煝瀹ュ绠涢柣妤€鐗忛崢鐢告⒑閸涘﹤鐏熼柛濠冪墱閳ь剚鐔幏锟�
|
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮村Δ鈧禍鎯ь渻閵堝簼绨婚柛鐔告綑閻g柉銇愰幒婵囨櫔闂佸憡渚楅崹浼村极閹间焦鈷掑〒姘e亾闁逞屽墰閸嬫盯鎳熼娑欐珷闁规鍠氱壕濂稿级閸稑濡兼繛鎼枟椤ㄣ儵鎮欑€涙ê纾冲Δ鐘靛仦鐢帡鍩為幋锕€閱囨繝闈涙搐閳ь剦鍨跺铏规嫚閸欏鏀銈庡亜椤︻垳鍙呭┑鈽嗗灣閸樠囧垂濠靛牃鍋撻崗澶婁壕闂佸憡娲﹂崜娆愮婵傚憡鈷戠紓浣姑悘杈ㄤ繆椤愩垹顏柟顔界懄缁绘繈宕堕妸褍甯楅梻浣告啞缁诲倻鈧凹鍓熷鎼佹晜閸撗咃紲闁哄鐗滈崑鍕儍閾忓湱纾奸弶鍫涘妽瀹曞瞼鈧娲樼敮鎺楋綖濠靛鏁勯柦妯侯槷婢规洟姊鸿ぐ鎺擄紵闁绘帪绠撳畷鎴犫偓锝庡枤閸欐捇鏌涢妷锝呭闁抽攱鍔欓弻娑樷枎韫囨洜顔掗梺鍝勭焿缂嶄焦鎱ㄩ埀顒勬煃閹増纭剧紓宥咃躬楠炲棛浠︽潪鎸庢瀹曘劑顢欓幆褍姹查梻鍌欒兌缁垰煤閺嶎厼纾归柛锔诲幐閸嬫挸顫濋悙顒€顏�
|
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞鐟滃繘寮抽敃鍌涚厽闁靛繆鎳氶崷顓犵幓婵°倕鎳忛悡娆撴煙濞堝灝鏋涙い锝呫偢閺屾稓鈧絽澧庣弧鈧梺鍝勬湰濞叉ê顕ラ崟顖氶唶婵犻潧妫楅ˉ娆愮節閻㈤潧浠﹂柛銊﹀劶瑜版粓姊虹悰鈥充壕婵炲濮撮鍡涘磹閻㈠憡鐓ユ繝闈涙閺嗘瑥鈹戦敍鍕幋闁哄本绋撻埀顒婄秵閸嬪懎鐣峰畝鈧埀顒冾潐濞叉ḿ鏁敓鐘茬畺婵炲棙鎸搁拑鐔兼煏婢跺牆鍔滈柡鍡╀邯濮婂宕掑▎鎴М闂佸湱鈷堥崑鍕弲闂侀潧艌閺呮稓澹曟繝姘厽闁归偊鍠栭崝瀣煕婵犲倻浠涢柕鍥у楠炴帡宕卞鎯ь棜闂傚倷绀侀悿鍥綖婢舵劕鍨傞柛褎顨呯粻鏍ㄧ箾閸℃ɑ灏柣顓燁殔椤潡鎳滈惉顏呭灴閺佸秵绗熼埀顒€顫忕紒妯诲閻熸瑥瀚禒鈺呮⒑閸涘﹥鐓ラ梺甯到閻i攱瀵奸弶鎴濆敤閻熸粍绮撳畷鐢稿即閻愨晜鏂€闂佺粯锚绾绢參銆傞弻銉︾厸闁告侗鍠楅崐鎰版煛鐏炶濮傞柟顔哄€濆畷鎺戔槈濮楀棔绱�
|
   
专 题 栏 目
 濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁惧墽绮换娑㈠箣閻愬灚鍣х紓浣稿閸嬨倝寮诲☉銏犖ㄦい鏃傚帶椤晝绱撴担鎻掍壕闂佸壊鍋嗛崰鎾跺姬閳ь剟姊婚崒姘卞缂佸甯¢弫宥夊籍閸喓鍘鹃梺鍝勵槼濞夋洘绂掗姀銈嗩梿濠㈣埖鍔栭悡銉︾節闂堟稒顥為柛锝嗘そ閹綊骞囬妸銉モ拤闂侀潧娲ょ€氫即宕洪敓鐘茬闁靛ǹ鍎辩粻锝夋⒒娴g瓔鍤冮柛鐘崇洴閿濈偞寰勯幇顒傤唵闂佸憡绋掑ḿ娆愬閻樼粯鐓忓鑸得悘锝囩磼閳ь剚绻濋崟顓狅紳闂佺ǹ鏈悷褔藝閿斿浜滈柨鏃囶嚙閻忥箓鏌熼鐭亪鍩為幋鐘亾閿濆簼绨介柛娆屽亾婵犵數濮伴崹濂稿春閺嶎厼绀夐柡鍥╁Х娑撳秴鈹戦悩宕囶暡闁稿﹤鐏氱换娑㈠箣閻戝棔鐥銈呯箰濡藟濮樿埖鐓曢柟閭﹀墯閳绘洘绻涢幘鎰佺吋闁哄本娲熷畷鐓庘攽閸埄鍞洪梺璇茬凹缁插宕戦幇顔筋潟闁圭儤顨忛弫濠囨煟閿濆懏婀伴柛锛卞喚娓婚柕鍫濇缁岃法绱撳鍕槮闁伙絿鍏橀獮鍥偋閸繀绨婚梻浣瑰劤缁绘锝炴径濠庣唵闁硅揪闄勯埛鎺懨归敐鍛暈闁诡垰鐗婄换娑氫沪閸屾艾顫囬悗瑙勬磻閸楁娊鐛Ο鑲╃<婵☆垵妗ㄧ划褔姊绘担鑺ョ《闁革綇绠撻獮蹇涙晸閿燂拷
相 关 文 章

全球黑客大赛战况:iPho
网络购物请提防十大“黑
Foxmail 6 防范黑客攻击
Foxmail防范黑客攻击两招
卡巴斯基:黑客攻击其在
倒计时器停滞 黑客完美破
黑客发现新的Vista激活破
免受骚扰 教您对付“QQ黑
QQ黑市揭密:被盗到出售
解读黑客非法盗取QQ币的

 
黑客揭密ASP.net服务器的入侵           
黑客揭密ASP.net服务器的入侵
作者:陈鹏 文章来源:eNet 点击数:111 更新时间:2009-9-11 23:14:54
 




 

有个朋友在QQ上问了我关于ASP.net服务器的入侵方法我将ASP.net上的一些入侵常用手段告诉大家。

  1.ASP中常用的标准组件:

  FileSystemObject,这个组件为 ASP 提供了强大的文件系统访问能力,可以对服务器硬盘上的任何有权限的目录和文件进行读写、删除、改名等操作。FSO对象来自微软提供的脚本运行库scrrun.dll中。使用下面的代码就可以在ASP中创建一个FSO对象:Set fso = CreateObject("Scripting.FileSystemObject")我们使用fso对象包含的属性和方法,如Drive、Drives、Folder、Floders、File、Files等对服务器的磁盘、目录和文件进行读、写、删除等操作。这一强大的文件系统访问能力给ASP共享空间提供者带来了严重的安全问题,很多ASP空间的管理员都删除此组件或将这个组件改名以避免用户使用这一标准组件。删除组件或组件改名确实是一个简单的方法并且也很有效,但是却使广大用户无法使用它的强大的功能。网络上还有一种看起来很美的方案,它允许用户使用 FileSystemObject 组件又不影响服务器的安全,即对每一个用户都设置一个独立的服务器用户和单个目录的操作权限。但是这种方法是有问题的。因为ASP和ASP.NET中在这方面的问题十分类似,所以我们将在ASP.NET的相应解决办法部分详加说明。在ASP.NET中我们发现这一问题仍然存在,并且变得更加难以解决。这是因为.NET中关于系统IO操作的功能变得更加强大,而使这一问题更严重的是ASP.NET所具有的一项新功能,这就组件不需要象ASP那样必须要使用regsvr32来注册了,只需将Dll类库文件上传到bin目录下就可以直接使用了。这一功能确实给开发ASP.NET带来了很大的方便,但是却使我们在ASP中将此dll删除或者改名的解决方法失去效用了,防范此问题就变得更加复杂。在讨论解决方案之前,我们先来看一下怎么来实现上述的危险的功能

  2.文件系统

  我们还要使用System.IO名称空间的其他几个类是:

  System.IO.Directory:提供用于创建、移动和枚举通过目录和子目录的静态方法的类

  System.IO.File:提供用于创建、复制、删除、移动和打开文件的静态方法的类

  System.IO.FileInfo:提供创建、复制、删除、移动和打开文件的实例方法的类

  System.IO.StreamReader:实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。

  每个我们所使用的类的属性和方法的具体用法我们将以代码注释的方式在程序中加以说明。

  System.IO名称空间在 .NET FRAMEWORK提供的mscorlib.dll中,在使用VS.Net编程之前需要将此Dll引用到此项目中。

  我们所编写的程序都使用了Codebehind方式,即每一个aspx程序都有一个对应的aspx.cs程序,aspx程序中只是写与页面显示相关的代码,所有逻辑实现的代码都放在相应的aspx.cs文件中,这样就可以更好得做到显示与逻辑的分离。由于我们的目的不是讨论Codebehind技术,所以就不在对此多加讨论了。   在这篇文章里,我们只介绍几个主要的类及其关键方法的用法,详细程序请查看附带的源代码。

  程序一:显示服务器的当前信息和全部逻辑驱动器的名称的程序listdrivers.aspx

  主要方法1:我们使用 GetSysInf() 方法来得到服务器的当前环境和平台的信息

  //获取系统信息的方法,此方法在listdrivers.aspx.cs文件中

热门推荐 Google秘笈:电影搜索终极教程 理解搜索引擎优化经典十大误区

  public void GetSysInf () {

  //获取操作系统类型

  qDrives = Environment.OSVersion.ToString();

  //获取系统文件夹

  qSystemDir = Environment.SystemDirectory.ToString();

  /*获取映射到进程上下文的物理内存量,通过这一内存映射量可以了解ASP.NET程序在运行时需要多少系统物理内存,有助于更好的规划我们的整个应用,因为物理内存量是以Byte为单位的,所以我们将此数值除以1024,可以得到单位为KB的物理内存量*/

  qMo = (Environment.WorkingSet/1024).ToString();

  //获取当前目录(即该进程从中启动的目录)的完全限定路径

  qCurDir = Environment.CurrentDirectory.ToString();

  //获取主机的网

  tail"

  HeaderText="详细信息"

  Target="_new"

  />

  在两个DataGrid(DirGrid,FileGrid)中我们分别设置了两个HyperLinkColumn列来导航到不同的处理页面。

  在两个DataGrid中我们都使用了一个删除的按钮列:

  <asp:ButtonColumn HeaderText="删除"

  Text="删除"

  CommandName="Delete"

  />

热门推荐 Google秘笈:电影搜索终极教程 理解搜索引擎优化经典十大误区

  由于添加、更新、删除功能列都是DataGrid的默认模板列,所以可以在Vs.net中通过DataGrid的属性生成器自动添加此列。

  获取上一页面所传递来的参数的代码:

  因为在下面产生数据源的方法中需要使用由上一个页面传递过来的参数来确定目录和文件的名称,所以在页面的Page_Load方法里使用了下列代码:

  strDir2List = Request.QueryString["dir"];

  字符串strDir2List即传过来的目录名或文件名。

  因为我们使用了两个DateGrid,就需要进行两次数据绑定,就有两个不同的生成数据源的方法。

  生成目录数据网格(DirGrid)数据源的方法:

  //通过此方法返回一个集合形式的数据视图DataView,用来初始化子目录的DataGrid

  ICollection CreateDataSourceDir() {

  dtDir = new DataTable();

  DataRow dr;

  //向DataTable中添加新的数据列,共四列

  dtDir.Columns.Add(new DataColumn("DirID", typeof(Int32)));

  dtDir.Columns.Add(new DataColumn("DirName", typeof(string)));

  dtDir.Columns.Add(new DataColumn("DelDir", typeof(string)));

  dtDir.Columns.Add(new DataColumn("DirDetail", typeof(string)));

  //根据传入的参数(目录名)得到此目录下所有子目录名的字符串数组

  string [] DirEntries = Directory.GetDirectories(strDir2List);

  //使用foreach循环可以对未知长度的数组进行遍历循环

  foreach(string DirName in DirEntries){

  dr = dtDir.NewRow();

  dr[0] = i;//序号

  dr[1] = DirName;//文件夹名称

  dr[3] = "删除";

  dr[3] = "查看详情";

  dtDir.Rows.Add(dr);

  i++;

  }

  DataView dvDir = new DataView(dtDir);

热门推荐 Google秘笈:电影搜索终极教程 理解搜索引擎优化经典十大误区

  //返回得到的数据视图

  return dvDir;

  }

  生成文件数据网格(FileGrid)数据源的方法:

  //通过此方法返回一个集合形式的数据视图DataView,用来初始化文件的DataGrid

  ICollection CreateDataSourceFile() {

  dtFile = new DataTable();

  DataRow dr;

  dtFile.Columns.Add(new DataColumn("FileID", typeof(Int32)));

  dtFile.Columns.Add(new DataColumn("FileName", typeof(string)));

  dtFile.Columns.Add(new DataColumn("DelFile", typeof(string)));

  dtFile.Columns.Add(new DataColumn("FileDetail", typeof(string)));

  //根据传入的参数(目录名)得到此目录下所有文件名的字符串数组

  string [] FileEntries = Directory.GetFiles(strDir2List);

  foreach(string FileName in FileEntries){

  dr = dtFile.NewRow();

  dr[0] = i;

  dr[1] = FileName;

  dr[2] = "删除";

  dr[3] = "查看详情";

  dtFile.Rows.Add(dr);

  i++;

  }

  dvFile = new DataView(dtFile);

  return dvFile;

  }

热门推荐 Google秘笈:电影搜索终极教程 理解搜索引擎优化经典十大误区

  我们编程实现了两个DataSource只需在页面的Page_Load方法里对两个DataGrid进行数据绑定即可将得到的DataTable中的数据显示在aspx页面的DataGrid上。

  数据绑定代码://对子目录数据列表DirGrid进行数据源定义和数据绑定

  DirGrid.DataSource = CreateDataSourceDir();

  DirGrid.DataBind();

  //对文件数据列表FileGrid进行数据源定义和数据绑定

  FileGrid.DataSource = CreateDataSourceFile();

  FileGrid.DataBind();

  通过我们上边介绍的主要方法,我们实现了对某个逻辑驱动器或目录中的所有子目录和文件进行了列表显示,并且可以根据显示结果更进一步的浏览子目录或者查看文件的属性和内容提要。浏览子目录仍然是通过listdir.aspx这个程序,没有任何子目录级别要求,没有目录深度限制。   删除子目录和文件的主要方法和代码:

  在删除子目录时,我们需要用到Directory.Delete (string,bool)方法,此方法有两种:

  1.public static void Delete(string);

  从指定路径删除空目录。

  2.public static void Delete(string, boolean);

  删除指定的目录并(如果指示)删除该目录中的任何子目录,将boolean设置为true的话,则删除此目录下的所有子目录和文件,否则将boolean设置为false。

  在这里我们使用了第二种方法,如果选择删除的话,将删除此目录下的所有子目录和文件。

  注意:Directory 类的所有方法都是静态的,因而无需具有目录Directory的实例就可被调用。

  /*实现删除子目录的方法,此方法为VS.NET自动添加,注意DataGridCommandEventArgs e为DirGrid中 CommandName="Delete" 的ButtonColumn的事件,通过此事件,我们可以得到是那一行的ButtonColumn按钮列被点击,进而确定我们需要删除的子目录的名称*/

  private void DirGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){

  /*定义一个单元格,e.Item为此事件所发生行的所有项目,e.Item.Cells[1]为整个行的第二个单元格的内容,在此DataGrid中为子目录的名称

  */

  TableCell ItemCell = e.Item.Cells[1];

  //得到此子目录的名称的字符串

热门推荐 Google秘笈:电影搜索终极教程 理解搜索引擎优化经典十大误区

  string item = ItemCell.Text;

  //删除此子目录

  Directory.Delete(item,true);

  //删除后进行数据绑定以更新数据列表

  DirGrid.DataBind();

  }

  在删除文件时,我们需要用到File.Delete(string path);

  注意:File 类的所有方法都是静态的,因而无需具有目录的实例就可被调用。

  private void FileGrid_DeleteCommand(object source,

  System.Web.UI.WebControls.DataGridCommandEventArgs e) {

  TableCell ItemCell = e.Item.Cells[1];

  //得到此文件名称的字符串

  string item = ItemCell.Text;

  //删除此文件

  File.Delete(item);

  //删除后进行数据绑定以更新数据列表

  DirGrid.DataBind();

  }

  通过上边的主要方法我们在页面上实现了一个删除某一个子目录或者文件的功能,此功能在测试时需要慎重使用,一旦删除无法通过常规方法恢复。其他如目录或文件改名、修改内容等方法都可以在此程序基础上添加相应的功能,实现方法也很简单。各位爱好者可以通过添加相应功能,使之扩充为一个基于Web的服务器文件管理系统。我们也可以由此看到这个程序的危害性,一个没有对此安全隐患采取防范措施的服务器的文件系统就都暴露在了使用此程序的用户面前。

热门推荐 Google秘笈:电影搜索终极教程 理解搜索引擎优化经典十大误区


【责任编辑 徐洋】

文章录入:陈鹏    责任编辑:陈鹏 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     
     

    Copyright © 2007 - 2009 chenpeng123.com All Rights Reserved
    本站所有文章,软件等均来自网络收集,不代表本站观点,仅供学习和研究使用。如有侵犯您的版权,请联系我们,本站将立即删除。
    鲁ICP备07014697号
    你是本站第 位访客
    51La