はじめに
⑴ 電子閲覧室、コンピュータ室、インターネットカフェなどの公共の場所では、頻繁な使用やメンテナンスの遅れにより、出力が必要なときにフロッピードライブなどの出力システムが損傷していることがよくあります。機器が動作しないときは大きなストレスがかかり、コストを節約するために、多くのコンピュータ室では、ネットワークに接続されたコンピュータに必要な出力デバイスがすべて揃っていません。
⑵ コンピュータの普及に伴い、多くの事務作業がコンピュータから切り離せないものになっています。言い換えれば、会社員のコンピュータにはオフィス上の重要なデータやプライベートなデータが大量に保存されるようになりました。ほとんどの場合、これらのデータは一意であるため、所有者がデータのコピーを作成して別のコンピュータに保存することはなく、そのセキュリティは完全に所有者のコンピュータの安定性に依存します。
⑶ インターネットの普及により、人々の距離が縮まり、コミュニケーションがより便利になりました。しかし、私たちは毎日、家、オフィス、インターネットカフェなど、さまざまな場所でインターネットにアクセスする必要があります。どうすれば文書を編集し続けることができるでしょうか。おそらく、これらのデータは、USB フラッシュ ドライブやモバイル ハードディスクなどのモバイル ストレージ デバイスを介して持ち運ぶことができますが、そのようなデバイス、特にモバイル ハードディスクをもう 1 つ持ち運んで、別の場所、別のデバイスに持ち運ぶのはあまり便利ではありません。 、異なるオペレーティング システムはあなたに適していません。USB フラッシュ ドライブやモバイル ハード ドライブのサポートは同じではなく、ユーザーのコンピュータ スキルも異なります。
...
これらの事実により、ネットワーク ストレージが必需品として浮上しました。
現在、電子メール、FTP、ネットワーク プレース、HTTP など、ネットワーク ストレージを実装する方法は数多くあります。その中でも FTP は最も強力な機能を備えていますが、設定が多くて使用を妨げる場合が多く、特にユーザー数が予測できない場合、特別なニーズを持つユーザーの設定はさらに面倒になります。 ; はい、電子メールは誰にとっても馴染みのあるものですが、ローカル エリア ネットワーク内では、この方法で財務、労働、その他の文書や情報を交換するのは適切な方法ではありません。メールスペースへの影響; ネットワークネイバーは、このマシン上で指定することで共有でき、特定の範囲内のユーザーのみがこれらのファイルにアクセスできます。他のユーザー、特にインターネット上のユーザーは、同じ DNS セグメント アドレスにスムーズにアクセスできます。これは使いにくく、電子メールと同様に、必要なリソースを取得するために多くのコンピューターのリストを検索する必要があることがよくあります。 上記のネットワーク ストレージ方法には、共通の欠点もあります。つまり、管理者はネットワーク ストレージに保存されているファイルの使用状況を明確に理解できず、ファイルの保存時間に基づいてファイルのスペースを確保するかどうかを決定することしかできません。 。
この記事では、HTTP を介して実装される比較的単純なネットワーク ストレージ方法を紹介します。この方法は、IIS および ASP/ASP.NET を介して WINDOWS プラットフォームに実装されており、使用が簡単であらゆる種類のファイルをアップロードできるだけでなく、ユーザーが使用する送信スペースを最小限に抑えることができます。さらに、管理者は 20 バイトから数百メガバイトまでのファイルを管理でき、ファイルの所有者と許可されたユーザーのみがファイルを復元できます。この記事の 2 番目の主要なポイントのデータ構造と 3 番目の主要なポイントのアップロード ソース コードを理解すると、機密データを保存するために市場で提供されている無料のネットワーク ストレージに依存する必要がなくなります。ネットワーク内のファイルの安全はしっかりと自分の手で守ります。
概要と基本機能
Windows プラットフォームを使用し、IIS5.0 を搭載したサーバーをネットワーク ストレージ ホストとしてインストールします。WEB サービスをセットアップし、ネットワーク ストレージを指す仮想 Web サイトを作成します。 : d:netspacespacenetmyspace。すべての asp および asp.net ソース コードはメイン Web サイト (c:inetpubwwwroot など) の下に配置され、d:netspacespacenetmyspace にはユーザーがアップロードしたファイルが配置されます (仮想 Web サイトの変更もソースコードはそれに応じて調整してください)。
1. 使用される基本的なデータベースと構造:
⑴ ftpsapce.mdb: テーブル userlist があり、テーブルの基本構造:
ID: シーケンス番号、自動生成。
Xh: ユーザー アカウント、登録および検証の生成。
Xm: ユーザー名、登録および検証の生成。
Kl: ユーザーのパスワード、登録および検証の生成。
Maxspace: ユーザー スペースの最大制限は、管理者が管理を通じてリセットできます。
Nowspace: ユーザーが現在占有しているスペースの量。
Lastaccessday: ユーザーの最終アクセス時刻。管理者がスペースを管理するときに参照します。
開始日: ユーザー登録時間。
Checkx: ユーザー認証フラグ。
⑵ Filelist.mdb: テーブル ファイル、テーブルの基本構造が含まれます。
ID: シーケンス番号、自動的に生成されます。
ファイル名: アップロード システムによって生成されたファイル名。
Fsize: ファイル サイズの値。
Xh: ユーザーアカウント。
更新日: アップロード時間。
ファイルスクリプト: ファイルの説明。ユーザーがファイルをアップロードするときのパスと元のファイル名であり、ユーザーがロードするときに参照されます。
2. 基本機能
⑴ ユーザーはメイン Web サイトにログインし、Web サイトのメインページに入ります。 、ユーザー登録のためのユーザーの基本情報を提供します。
⑵ 管理者はユーザーの登録情報を確認し、ユーザーの最大使用容量を設定します。
⑶ 審査に合格したユーザーは、ファイルをネットワークストレージにアップロードします。システムは、ユーザーの合法性とファイルの合法性を判定し、ユーザーがアップロードしたファイルとユーザー情報をデータベースに登録します。
⑷ 承認されたユーザーは、ダウンロード機能を通じてアップロードしたファイルを再読み込みまたは削除できます。
⑸ 管理者は、ユーザーデータベースとファイルデータベースに基づいてネットワーク空間を管理します。
⑹ 拡張されたシステムにより、許可されたユーザーがアップロードしたファイルを許可されたユーザーがダウンロードできるようになります。
アップロード モジュールの基本的なソース コードには
スペースの制限があります。この記事では、アップロード モジュールの基本的なソース コードのみを提供します。さらにソース コードが必要な場合は、*** で始まる行を作成者にリクエストしてください。ソース コード内の は、読者の便宜のために作成者によって追加されたコメントです。 (以下はupfile.aspxより抜粋)
<%@ Page Language="VB" Debug="true" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.oledb" %>
<html>
<script language="vbscript" runat="server">
サブアップロードファイル(送信者をオブジェクトとして、e をイベントターゲットとして)
fileup.postedfile.contentlength<20 の場合、
errors.text="このような小さなファイルをアップロードする必要があります。覚えておいてください。"
ファイル情報.visible=false
出口サブ
それ以外
errors.text="検証OK"
ファイル情報.visible=true
end if
*** 上記はアップロードされたファイルのサイズを確認します
リスペース.テキスト="0"
nowspace.text="0"
*** respace は残りのスペースを参照し、nowspace は使用済みスペース
dim xh1 を string =user1.value として
参照します。
dim kl1 as string =pass1.value
*** xh1 はアカウント番号を指し、kl1 はパスワード
dim objconnstr as string="provider=microsoft.jet.oledb.4.0;data source="
を指します。
&server.mappath("ftpspace.mdb")
dim objconn の oledbconnection = new oledbconnection(objconnstr) と
同じステートメントである必要があります。
dim sql1 as string="select * from userlist where xh='"+xh1+"' and kl='"+kl1+"'"
dim objrscc as oledbcommand= new oledbcommand(sql1,objconn)
objconn.open()
dim objrs as oledbdatareader = objrscc.executereader()
dimix as integer=0
最大の明るさ
今は限りなく薄暗い
ix=0の間
objrs.read() の場合
objrs.item("xh")=xh1 の場合、
objrs.item("kl")=kl1 の場合
objrs.item("checkx")=1 の場合
ix=ix+1
maxs=objrs.item("最大スペース")
nows=objrs.item("nowspace")
終了する場合
終了する場合
終了する場合
それ以外
ix=-1
終了する場合
end while
*** 上記は、アカウントとパスワードが正当であるかどうかを判断します
if ix<=0 then
errors.text="アカウントのパスワードが間違っています!またはユーザーが認証されていません。管理者が認証するまでお待ちください!"
それ以外の
場合、fileup.postedfile.contentlength>maxs-nows の場合
fileup.postedfile.contentlength>=maxs の場合
errors.text="ファイルの長さが割り当てられたスペースを超えているため、アップロードできません!"
それ以外
errors.text="空き容量が不足しています。古いファイルを削除してください。"
end if
*** 上記により、ユーザー スペースの可用性が決定されます
それ以外
dim obj4str as string="provider=microsoft.jet.oledb.4.0;
data source=" & server.mappath("filelist.mdb")
*** 上記の 2 行は、ソース コード dim obj4 の oledbconnection = new oledbconnection(obj4str) と同じステートメントです。
dim sql10 as string="ファイルから * を選択"
dim objrc1 as oledbcommand= new oledbcommand(sql10,obj4)
obj4.open()
dim objrsx as oledbdatareader = objrc1.executereader()
dim fn11 as long =0
objrsx.read()
fn11=objrsx("ファイル名")
その間終了
dim fn1 を文字列として表示
fn1=cstr(fn11+1)
*** 上記の例では、ユーザーがファイル dim objc1str as string="provider=microsoft.jet.oledb.4.0; をアップロードするための一意のメイン ファイル名が作成されます。
data source=" & server.mappath("filelist.mdb")
*** 上記の 2 行は、ソース コード dim objc1 の oledbconnection = new oledbconnection(objc1str) と同じステートメントです。
dim sql3 as string="ファイルに挿入(ファイル名、fsize、xh、ファイルスクリプト、upday)
value("+cstr(fn1)+","+cstr(fileup.postedfile.contentlength)+",'"
+xh1+"','"+fileup.postedfile.filename+"','"+cstr(now())+"')"
*** 上記の 3 行は、ソース コード内の同じステートメント objc1.open() です。
dim objrs1 as oledbcommand=new oledbcommand(sql3,objc1)
dim fn2 を文字列として表示
fn2="d:/netspace/spacenet/myspace/"&cstr(fn1)&".zip"
*** ユーザーがアップロードしたファイルの絶対パスと完全なファイル名を指定します。 fsize.text=cstr(fileup.postedfile.コンテンツの長さ)
ftype.text=fileup.postedfile.contenttype
fname.text=fileup.postedfile.ファイル名
ユーザー名.テキスト=ユーザー1.値
fileup.postedfile.saveas(fn2)
objrs1.ExecuteNonQuery()
objrs.close
dim sql5 as string="update userlist set nowspace="+cstr(nows+fileup.postedfile.contentlength)+
",lastaccessday='"+cstr(now())+"' where xh='"+xh1+"'"
dim objrnc as oledbcommand= new oledbcommand(sql5)
内の同じステートメントです。
、オブジェクトコン)
objrnc.executenonquery()
respace.text=cstr(maxs-nows-fileup.postedfile.contentlength)&"バイト"。
nowspace.text=cstr(nows+fileup.postedfile.contentlength)&"bytes."
*** 上記はアップロードに使用され、ユーザーの合計使用容量と合計残り容量が計算されます。
終了する場合
エンドサブ
</script>
<本文>
<form enctype="multipart/form-data" runat="server">
<テーブル>
<tr><td>アカウント:</td><td><input id="user1" runat="server"></td></tr>
<tr><td>パスワード:</td><td><input type="password" id="pass1" runat="server"></td></tr>
<tr><td>ファイル:</td><td><input type="file" id="fileup" runat="server"></td></tr>
<tr><td></td><td><asp:button id="upload" onclick="uploadfile" text="アップロード"
runat="サーバー"/></td></tr>
</テーブル>
</form><hr>
<div id="fileinfo"visible="false" runat="server">
元のファイル名:<asp:label id="fname" runat="server"/><br>
バイト サイズ:<asp:label id="fsize" runat="server"/><br>
ファイルの種類:<asp:label id="ftype" runat="server"/><br>
ユーザー アカウント:<asp:label id="username" runat="server"/><br>
残りのスペース:<asp:label id="respace" runat="server"/><br>
使用済みスペース:<asp:label id="nowspace" runat="server"/><br>
アップロードステータス:<asp:label id="errors" runat="server"/>
</div>
*** 上記は、ファイルがブラウザにアップロードされる前後に関連情報をユーザーに伝えます。
</body>
</html>
結論
この記事で説明する方法は、コンポーネントレス テクノロジに基づいており、ファイル セキュリティと個人のプライバシーのより多くの側面を考慮しています。この方法は、Windows Server 2003 および IIS6.0 プラットフォームでの使用に最適です。シンプルで安全で、ユーザーリストにユーザー番号とグループ番号を追加したり、ファイルにグループ番号を追加したりするなど、ファイルのアクセス許可を設定できるため、ネットワークへの送信、検証、ファイルの共有が容易になります。 。ディスクアレイと組み合わせることで、データのセキュリティが質的に向上します。