1

ASP.NETアプリケーションでは、いくつかの画像を表示する必要があります。実際、これらの画像は他のサーバーに保存されています。私のデータベースにはファイルパスがあります。リモートサーバーからアプリケーションにファイルにアクセスする必要があります。どうやってやるの?私は次のコードを使用しています

imgFiles = Directory.GetFiles(strFullPath, 
                              strPkStock + "_*", 
                              SearchOption.TopDirectoryOnly);

しかし、これは「パスへのアクセスが拒否されました」というエラーをスローします

4

2 に答える 2

6

これを行うには、他のサーバーでファイルシステムにアクセスする必要がありますが、アクセスできないと確信しています。

それを行うための最短の方法は、他のサーバーから画像フォルダを公開し、ファイルシステムパスではなく画像のURLを使用してそれにアクセスすることです。このようにして、asp.netアプリケーションはこれらの画像に簡単にアクセスできるようになります。実際、他のサーバーからこれらの画像に直接アクセスするのはクライアントブラウザであり、画像のsrcを変更するだけです。

于 2012-10-10T05:41:15.660 に答える
2

HTTP /HTTPSを介してファイルにアクセスするというMurtuzaKabulの提案は、おそらく最も簡単なアプローチです。クライアント証明書でHTTPSを使用して、他のユーザー/マシンが同じHTTPSサーバーからファイルを読み取らないようにすることができます。

他のサーバーの共有フォルダーにあるファイルに直接アクセスする場合は、ファイルにアクセスするコードが、少なくともその共有フォルダーの読み取り権限を持つアカウントで実行されていることを確認する必要があります。

コードが実行されるデフォルト構成(コードが特別な匿名アカウントまたは呼び出し元のユーザーの資格情報のいずれかで実行される)アカウントには、他のサーバーへのアクセス許可がないことに注意してください(ローカルアカウントであるため匿名、ユーザーは「NTLMワンホップ」とも呼ばれる委任の制限のため地獄")。

最も簡単な方法は、他のサーバーへのアクセス許可を持つアカウントでアプリポーリングを実行し、現在のユーザーになりすましてアカウントを処理することです。一部のアカウントを明示的に非難して、リモートファイルにアクセスすることもできます。

于 2012-10-10T06:12:02.317 に答える