Control.MapPathSecure メソッド
仮想パス (絶対パスまたは相対パス) の割り当て先の物理パスを取得します。
Protected Function MapPathSecure( _
ByVal virtualPath As String _) As String
[C#]
protected string MapPathSecure(stringvirtualPath);
[C++]
protected: String* MapPathSecure(String* virtualPath);
[JScript]
protected function MapPathSecure(
virtualPath : String) : String;
パラメータ
- virtualPath
相対 URL、またはルートに対して相対的な URL。
戻り値
要求されたファイルへの物理パス。
例外
例外の種類 | 条件 |
---|---|
HttpException | サーバー コントロールに、割り当てられた結果のファイルを読み取るための許可がない場合に発生します。 |
解説
このメソッドを使用できるのは、ファイル読み取りのアクセス許可を持ち、System.Web.dll などの完全に信頼されている .dll ファイルの一部であるサーバー コントロールだけです。この制限は、セキュリティ侵害の防止に役立ちます。
使用例
[Visual Basic, C#, C++] Page オブジェクトまたは UserControl オブジェクトが格納されている仮想ディレクトリの物理パスを、 MapPathSecure メソッドを使用して取得する例を次に示します。
' An HttpException occurs if the server control does not,;
' have permissions to read the resulting mapped file.
output.Write("The Actual Path of the virtual directory : " & _
MapPathSecure(TemplateSourceDirectory) & "<br>")
' Get all the files from the absolute path of 'MyControl';
' using TemplateSourceDirectory which gives the virtual Directory.
Dim myFiles As String() = Directory.GetFiles(MapPathSecure(TemplateSourceDirectory))
output.Write("The files in this Directory are <br>")
' List all the files.
Dim i As Integer
For i = 0 To myFiles.Length - 1
output.Write(myFiles(i) & "<br>")
Next i
[C#]
// An HttpException occurs if the server control does not,;
// have permissions to read the resulting mapped file.
output.Write("The Actual Path of the virtual directory : "+
MapPathSecure(TemplateSourceDirectory)+"<br>");
// Get all the files from the absolute path of 'MyControl';
// using TemplateSourceDirectory which gives the virtual Directory.
string [] myFiles=
Directory.GetFiles(MapPathSecure(TemplateSourceDirectory));
output.Write("The files in this Directory are <br>");
// List all the files.
for (int i=0;i<myFiles.Length;i++)
output.Write(myFiles[i]+"<br>");
[C++]
// An HttpException occurs if the server control does not
// have permissions to read the resulting mapped file.
output->Write(S"The Actual Path of the virtual directory : {0}<br>", MapPathSecure(TemplateSourceDirectory));
// Get all the files from the absolute path of 'MyControl'
// using TemplateSourceDirectory which gives the virtual Directory.
String* myFiles[]=
Directory::GetFiles(MapPathSecure(TemplateSourceDirectory));
output->Write(S"The files in this Directory are <br>");
// List all the files.
for (int i=0;i<myFiles->Length;i++)
output->Write(S"{0}<br>", myFiles[i]);
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ