私はWCFの世界に比較的新しいので、初心者の質問のための私の賛美です。私は現在、WCFサービスのレイヤーを設計中です。そのうちの一つは、認証サービスですので、私は、次の認証メカニズムを思い付いた:WCF認証サービス
IUserService.TryAuthenticateUser(string username, string password, out string key)
Basiclyユーザーが認証しようとすると、成功した場合 - 彼/彼女がSESSIONKEY/securitykey/whateverkey ...鍵を受け取り、それ以外の「WCFアクション」ごとに必要です
IService.GiveMeMyFeatures(string key);
IService.Method1(string key);
このメカニズムは、私にとって非常に直感的に検索し、また、実装するのは非常に簡単ですので、私は同様のWCFの例を見つけるカントなぜ何私を気にすることはありますか?このユニークなキー(実質的にwcf側の有効期限とすべてを持つセッションキー)は、アプリケーションのアーキテクチャに従って、さまざまなアプリケーションから使用できます。ASP.NEtでは、Winform/WPF /モバイル私はそれがフィールドのフォームクラスに格納することができると思います。
ここで質問1が来ます:この方法についてどう思いますか?
ビルドインASP.NET認証サービス(メンバーシッププロバイダなど...私が正しく理解している場合)を使用することもできます。 > WCF - - > ASP.NET認証サービス - >応答
で ASP.NET:ASP.NETページからの認証時のワークフローは次のようになりますので、アーキテクチャの観点から私は、この方法のように、本当にいけませんこのシナリオでは、WCFレイヤーをバイパスしてauthを呼び出すこともできます。 asp.netページから直接サービスメソッドを呼び出します。すべての認証要求に対してWCFレイヤーを通過することでパフォーマンスは低下しますが、素敵な階層化されたアーキテクチャを持つことが重要です。
ここに質問2があります。 /最初のものよりもこの方法の不利な点は、アーキテクチャの観点からはそれが間違っているときに、なぜそんなに人気がありますか?
また、WCFメソッド呼び出しごとにユーザー資格情報を送信し、組み込みのメカニズムを使用して要求を認証し、適切に応答できることも読んでいます。
質問3:この方法ならどうなりますか?
合計で、明らかに多くの認証方法がありますが、どちらが最もよく、最も一般的であると思いますか(WCFサービスはasp.net/wpf/mobile/etcから呼び出されると考えています) ?
おかげで事前:)
+1 - 「通話ごと」のシナリオを使用すると、それぞれの通話が前の通話と分離され、通話間で何も共有されません。 –
私は間違って説明したと思う。私は呼び出し間で情報を共有したくない、私はちょうどその呼び出しが有効なユーザーから来ていることを確認したい。私は、毎回パスワードを送信するという考えを嫌います。したがって、私は「抽象的な」キーコンセプトを思いつきます... アイデアを少し改良しましたが、UserServiceを使用してユーザー名とパスワードからキーを取得しましたが、キーをwcfメソッドごとにパラメータとして渡すのではなく、カスタム資格情報 – Krassi