0

IIS でホストされている WCF サービスがあります。asp.net mvc でホストされている別の Web サイトがあります。公開ウェブサイトです。WCF サービスをセキュリティで保護して、MVC アプリケーション以外のアプリケーション、またはアクセスを許可したアプリケーションからアクセスできないようにしたいと考えています。

フォーム認証を使用してこれを行うことはできますか?

アップデート:

いくつかの例を試しましたが、効果的な例を得ることができませんでした。私はsslを使いたくありません。私のWebアプリケーションにはログイン機能がありません。必要に応じて、プログラムによるログインを実装できます。必要なのは、サービスが自分の Web サイトから呼び出されない場合はアクセスを拒否することだけです。フォーム認証を使用して Web サービスでこれを行いました。しかし、ここでは、httpcontext は null です。

4

1 に答える 1

0

はい、できます。WCF 呼び出しは同じパイプラインを通過するため、特定のプリンシパル (ユーザー名またはロール) をチェックすると、フォーム Cookie に応じてチェックが失敗/成功します。

詳しくは私のブログエントリーで

http://netpl.blogspot.com/2010/04/aspnet-forms-authentication-sharing-for.html

ここでは、Web アプリと、WCF サービスを呼び出すホストされた Silverlight アプリとの間でフォーム ID を共有する方法を示します。

さらに別の種類のクライアント アプリケーションの場合、クライアント側で Cookie 値を取得する方法はさまざまです。Silverlight は、実行元の Web アプリケーションから Cookie を継承するだけです。

クライアントがコンソール アプリケーションであると仮定すると、ログイン名とパスワードを受け入れて Cookie をクライアントに返す WCF サービスから無防備なメソッドを公開することさえできます。このように、コンソール アプリケーションは最初にこの保護されていないメソッドを呼び出してユーザーをログインさせ、次に、返された Cookie を使用して、フォーム認証で保護された他の WCF サービスを呼び出します。

于 2013-07-01T12:25:43.293 に答える