httpsを使用したwebhttpbnindおよびusernameppasswordvalidatorを使用した認証

StackOverflow https://stackoverflow.com/questions/6354787

  •  28-10-2019
  •  | 
  •  

質問

JSONデータを生成するレストサービスとして機能するエンドポイントを公開するIISでホストされているWCFサービスを設定しようとしています。HTTPSを使用したいと考えています。ユーザーはデータベースに保存されているため、usernamepasswordvalidatorの助けを借りて、自分でユーザー認証の世話をしたいと思います。

現時点では、残りの能力を達成するためにWebHTTPBindingを使用しています。私の問題は、HTTPSを有効にしようとすると始まります(セキュリティモードを輸送に設定します)。サーバー側にSSL証明書があるので(今のところ自己署名)、それはすべて良いことですが、バインディングの輸送クライアントクレデンスタイプを構成する方法はわかりません。

私はたくさんグーグルで検索しましたが、何も良いものを見つけることができないようです。私がそれを正しく理解している場合、IISはWCFの前に認証を処理し、それについて何もすることはありませんか?私は本当にASP.NETメンバーシッププロバイダーを使用したくないと思いますが、それはアプローチかもしれませんか、それとも別の方法がありますか?

ありがとうございました!

編集:見つかりました これ. 。本当に私が望んでいたことではありません...

役に立ちましたか?

解決 2

多くのGoogleingの後、私はいくつかの可能な解決策を見つけました。

推奨される方法 IISでホストされているRESTFUL WCFサービスで認証を解決することは、トークンを使用することであると思われます。 oauthのサードパーティの実装の助けを借りて、または何かを実装する 自己. 。ただし、これによりNetTCPエンドポイントにいくつかの問題が発生し、おそらく両方のエンドポイントに同じ実装を使用することはできません(WebHTTPエンドポイントを介して来るコールでトークン検証を行う必要があるため)

ソリューション Ladislav Mrnkaによって与えられたことも有効であるようです。

他のヒント

使用できません UserName 資格情報 - これは、ソープヘッダーを介したメッセージレベル認証ですが、JSONデータ交換にはそのようなヘッダーがありません。セットアップしてみてください Basic 輸送要素の資格情報(=輸送レベル認証)。 .NET 3.5以降、カスタムパスワードバリデーターで動作するはずです. 。正常に認証するには、基本認証のために有効なHTTPヘッダーを渡す必要があります。

編集:

IISでテストしなかったので、カスタムバリーターが実行される前にIISが認証をトリガーするため、いくつかの問題が発生する可能性があります。そのような場合、必要になります 認証用のカスタムHTTPモジュール.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top