0

Web サイトに、ディレクトリを作成してファイルをコピーするボタンがあります。Visual Studio 2008、ASP.Net 3.5 を使用して開発しました。OSはVistaを使用しています。この Web サイトでは、ID の偽装が使用されています。

次の場合、この機能は機能しません (「パス XYZ へのアクセスが拒否されました」)。

  • ローカル Web サーバーにアクセスする IE 経由で Web サイトを実行します

[管理者権限で Visual Studio を実行することに注意してください]:

  • Visual Studio でプレイします
  • 私はVisual Studioからブラウザで見ると言います
  • ローカル Web サーバーにヒットする IE を介して Web サイトを実行しますが、管理者権限で IE を起動します
  • Web サイトを別の Web サーバー (vista/IIS7 も) にデプロイします
  • 統合認証を受け入れるように FireFox を変更し、FireFox と localhost 経由でアクセスします。

以前にこの動作を見たことはありません。以前は、File.Copy タイプのコマンドは、コピー先のフォルダーに対する権限が有効であることのみを気にしていました... (この状況をデバッグしようとしている間、全員が完全に制御されています)。問題が管理者権限を持っているかどうかであると思われますか? または、それが実行されているマシンにログインしていますか?

ここで何が起きてるの?開発環境で動作し、別のマシンにデプロイされるのに、自分のマシンにデプロイすると動作しないのはなぜですか? 非常に奇妙に思えますが、助けていただければ幸いです。

編集:関連するすべてのディレクトリに「Everyone」を追加し、そのユーザーにフル コントロールを付与したので、権限の問題は発生しませんか?

4

4 に答える 4

2

OK I have tracked down the solution to this issue given these symptoms. I'm not 100% sure why this works (particularly since it works fine in FireFox and works fine in IE if you not connecting locally), but the following seems to be a work-around.

In IE select Tools -> Internet Options -> Security -> Trusted Sites -> Sites and add http://localhost as a trusted site. This then enables you to use the website locally. Why you need to do this in IE when connecting locally and not in FireFox or IE when connecting to another machine is something I don't know. But it does seem to be a viable workaround.

于 2008-12-16T07:10:22.627 に答える
2

IIS が偽装されたスレッドを実行しているユーザーが、元のファイルまたは宛先にアクセスできない可能性があります。そのユーザーとして直接コピーを試みましたか? IE を管理者として実行するか、VS を管理者として実行すると、偽装されたユーザーは管理者としての完全な権限を持ちます。

[編集 - リンクを追加]

同様のスレッドにいくつかの情報があります。SysInternals を使用するというアイデアは良かったです。

IIS7 での UnauthorizedAccessException

于 2008-12-16T04:54:44.633 に答える
2

asp.net で変更する許可を与えるようにしてください。

google(ing) すると、それに関するいくつかの記事を見つけることができます。

于 2008-12-16T04:59:42.547 に答える
0

私の推測では、ASP.Net が実行されている ID にアクセス許可がない (NetworkService) か、匿名認証に使用されるユーザーにアクセス許可がある (IUSR)

于 2008-12-16T04:48:02.040 に答える