私のWebサービスアプリケーションのルートには、html
とtxt
のファイルを含むディレクトリがあります。これらのファイルは、認証されたユーザーにのみアクセスする必要があります。どのように私はこれを達成することができますか?ASP.Net認証されたユーザーにのみアクセス権を提供します。
これは私の質問のフォローアップである:ASP.Net Directory Security
そのポストにSharkにより示唆されるように、私はHttpHandler
を実装しました。それはhtml
とtxt
ファイルを処理することができますが、これらのファイルを認証されたユーザーにも表示することはできません。
アップデート:私は、ハンドラでセッションをチェックすることで、この問題を解決しました。これをサーバー上でホスティングしている間、別の問題に直面しました。つまり、私のカスタムハンドラは呼び出されませんでした。私はその問題の原因と解決策を得た上:http://msdn.microsoft.com/en-us/library/bb515343.aspx
原因:
デフォルトでは、インターネットインフォメーションサービス(IIS)は、サービスにASP.NETに のみ特定のファイルタイプの要求を渡します。 .aspx、asmx、.ashxなどのファイル名が のファイルは、既にASP.NET ISAPI拡張子(Aspnet_isapi.dll)の にマップされています。
ソリューション:
は、IISは、ASP.NETに他のファイル名の拡張子を渡すようにするには、[ IISで拡張子を登録する必要があります。
全体的な話:http://www.naveenbhat.in/2012/06/directory-security-on-webservice-with.html
私はすでにこれを試してみましたが、私のために働いていません!私はコードで行う必要がある何か、関連がありますか? – NaveenBhat
フォーム認証を試みましたか?認証後にPage.User.Identity.IsAuthenticatedをチェックすると返されるものは何ですか?または、まだ認証を設定していませんか? – Chris
遅れて申し訳ありません。私は 'windows'認証を使用しました。私の場合、' Page.User.Identity.IsAuthenticated'は常に 'true'を返していました。私は 'Forms'を試していませんでした。なぜならWebサービスアプリケーションとAFAIK' Forms'認証はここでは良い選択肢ではないからです。 – NaveenBhat