2012-01-06 30 views
0

私のWebサービスアプリケーションのルートには、htmltxtのファイルを含むディレクトリがあります。これらのファイルは、認証されたユーザーにのみアクセスする必要があります。どのように私はこれを達成することができますか?ASP.Net認証されたユーザーにのみアクセス権を提供します。

これは私の質問のフォローアップである:ASP.Net Directory Security

そのポストにSharkにより示唆されるように、私はHttpHandlerを実装しました。それはhtmltxtファイルを処理することができますが、これらのファイルを認証されたユーザーにも表示することはできません。


アップデート:私は、ハンドラでセッションをチェックすることで、この問題を解決しました。これをサーバー上でホスティングしている間、別の問題に直面しました。つまり、私のカスタムハンドラは呼び出されませんでした。私はその問題の原因と解決策を得た上: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

答えて

1

あなたはASP.Netセキュリティ(フォーム/ Windows認証)を使用している場合、あなたは、単にweb.configファイルの設定によってそれを制御することができます。ように:

<system.web> 

    <authentication mode="Forms"> 
    </authentication> 

    <location path="directoryPath"> 
     <system.web> 
     <authorization> 
      <deny users="?"/> // this will deny access to anonymous users 
     </authorization> 
     </system.web> 
    </location> 

</system.web> 
+0

私はすでにこれを試してみましたが、私のために働いていません!私はコードで行う必要がある何か、関連がありますか? – NaveenBhat

+0

フォーム認証を試みましたか?認証後にPage.User.Identity.IsAuthenticatedをチェックすると返されるものは何ですか?または、まだ認証を設定していませんか? – Chris

+0

遅れて申し訳ありません。私は 'windows'認証を使用しました。私の場合、' Page.User.Identity.IsAuthenticated'は常に 'true'を返していました。私は 'Forms'を試していませんでした。なぜならWebサービスアプリケーションとAFAIK' Forms'認証はここでは良い選択肢ではないからです。 – NaveenBhat

関連する問題