0

クライアント アプリケーション サービスを使用して、フォーム認証と SqlMembershipProvider/SqlProfileProvider/SqlRoleProvider を使用する関連 Web アプリケーションに対する認証 (ユーザー名/パスワード ログオン) を許可する WPF アプリケーションがあります。これはすべて機能し、ユーザーとパスワードの組み合わせを確実に検証できます。

WPF アプリケーションは、CAS 認証に使用されるのと同じ Web アプリケーションによって公開される多数の WCF サービスも呼び出します。認証の詳細 (クライアント アプリケーション サービスから) を WCF サービスに渡して、これらのサービス内で認証されたユーザーを識別できるようにしたいと考えています。また、認証が行われていない場合に WCF サービスが使用されないようにする必要もあります。

.asmx Web サービスに対して CAS 認証が使用されている .NET 3.5 の例をいくつか見つけました。または、ClientBase を使用せず、認証機能が組み込まれている WCF Data Services に対して認証が提供されていますが、純粋な WCF の例は見つかりません。 . このシナリオを可能にする指示を教えてくれる人はいますか? このプロジェクトでは .NET 4.0 を使用しています。

このstackoverflowの質問も見つけましたが、これもWCFではなく.asmx Webサービスに対して回答されています。

私が得た最も近いものは、 を作成OperationContextScopeし、Cookie ヘッダーをClientFormsIdentityオブジェクトから にコピーし、これを現在の の にHttpRequestMessageProperty追加することです。次に、 の有効期間内にサービスの 1 つ以上のメソッドを呼び出します。つまり、WCF サービスにアクセスしても、元のユーザーを特定できるような認証に似たものはまだ何も表示されません。この方法論はさまざまな例から取られていますが、明らかに WCF 側のステップが欠けています。OutgoingMessagePropertiesOperationContextOperationContextScope

4

2 に答える 2

1

Microsoft が現在 WCF サービスに使用している Web API に切り替える必要があると思います。Web API でのフォーム認証の使用http://aamirposwal.blogspot.com/2012/05/aspnet-web-api-custom-authorize-and.htmlを確認してください。

于 2012-12-20T20:30:57.580 に答える
0

それを見つけた。

私のバインディングでは、allowCookies="true" を指定しました。

Wiktor Zychlaによると、「BasicHttpBinding の AllowCookies プロパティを true に設定すると、自動 Cookie 管理が有効になります」 - これは、コードで Cookie を設定しようとしても無視されることを意味し、これが私が行っていたことです。

于 2012-12-21T13:58:04.750 に答える