0

テキスト ファイルを書き込む必要があるイントラネット アプリケーションがあります。そのテキスト ファイルは、ネットワーク共有フォルダーに存在する必要があります。UNC名「\\fileserver\subfolder\TEST.txt」を介してアクセスしていますが、もちろん恐ろしい「パスへのアクセスが拒否されました」というエラーが発生しています。

私のイントラネット Web サイトは IIS 6 で実行されています。イントラネットには、Request.ServerVariables["AUTH_USER"] を使用してログオンしているユーザーのアカウントにアクセスできる必要がある別のアプリケーションがあります。サイトへの匿名アクセスを有効にすると、これが機能しないことがわかりました。統合 Windows 認証を使用しています。Web アプリケーションのネットワーク共有フォルダーへの書き込みアクセスを有効にするにはどうすればよいですか? 他のアプリを壊さずに偽装を使用することはできないと考えています。サイトのこの部分 (フォルダー) だけに、他のアプリに影響を与えないようなことはできますか?

これを機能させるには、IIS で何をすべきか、および/または書き込もうとしているネットワーク フォルダのフォルダ設定を段階的に行う必要があります。

4

1 に答える 1

0

ファイルに書き込むコードの一部を偽装するのは、ちょっとしたハックです。つまり、ファイルへの書き込みに十分な権限を持つユーザーに切り替えます。

たとえば、次のようにこれを行うために使用できる小さなImpersonatorヘルパー クラスがあります。

... 
using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
   ...

   <code that executes under the new context>

   ...
}

...

このアプローチの欠点は、ユーザー名とパスワードを、コードにハードコーディングするか、web.config ファイルなどの内部に保存する必要があることです。セキュリティの観点からは、どちらも悪い可能性があります。

于 2012-04-16T19:47:37.123 に答える