0

次の問題があります。asp.netページを使用して、IISでホストされている一部のファイルへのアクセスを保護したい。このページは、次を使用して別のアプリケーションから呼び出されます。

var request = WebRequest.Create("www.smth.com/protectData.aspx") 
              as HttpWebRequest;
request.Credentials = new NetworkCredentials("john doe", "john"); 
request.PreAuthenticate = true; 
var response = request.GetResponse(); 

呼び出されたページ(protectData.aspx)で送信された資格情報を読み取る方法は?

クレデンシャルを検証するためのコードを用意しています...カスタムメンバーシップを実装しようとしましたHttpContext.Current.Userが、nullです。aspxページは、カスタムポリシーで認証されたWCFサービスをホストするWebアプリケーションでホストされます。

system.serviceModel>
serviceAuthorizationprincipalPermissionMode = "Custom" authenticationPolicies add policyType = "
CustomPolicy.CustomPolicy
、CustomPolicy" /> authenticationPolicies system.serviceModel

aspxページの場合、現時点ではセキュリティが設定されていません。基本的には、リクエストからクレデンシャルを取得し、既存のコードを使用してそれらを検証したいだけです。

助けていただければ幸いです、エイドリアン

4

1 に答える 1

1

基本的に2つのオプションがあります。HTTPトランスポート認証またはフォームベースの認証を使用できます。

トランスポート認証の場合、クライアントがアクセスしようとしているリソースを保護するためにIISをセットアップする必要があります。このリソースは、ファイルまたはASPXページにすることができます。これにより、ASPXページはHttpContext.Current.User変数を読み取り、そのユーザーがリソースにアクセスできるかどうかを判断できるようになります。

フォームベースの認証の場合、IISは要求を認証する必要はありません。代わりに、フォームをWebフォームに投稿すると、リクエスト内のユーザー名/パスワードを確認して、アクセスを許可するかどうかを決定できます。

Forms Based Auth(FBA)のバリエーションは、POST本文にユーザー名/パスワードを投稿することです。これにより、ASPXページは、アクセスを許可するかどうかを読み取り、デコードし、決定できます。

于 2009-12-02T18:23:17.960 に答える