問題タブ [wcf-sessions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ajax - wsHttpBindingを使用するときにInstanceContextMode.PerSessionがPerCallのように動作するのはなぜですか?
私はSOAP1.2を使用してAJAXクライアントによって消費されるWCFサービスを持っています
Web.config:
私が読んだ<security mode="None"/>
ことから、「wsHttpBinding」バインディングで公開されたサービスは、WS-*ファミリーのWebサービス仕様のWS-Securityを実装しているため、使用する必要があります。バインディングはセキュリティを使用するため、AJAXはセキュリティコンテキストをサポートしていないため、リクエストは拒否されます。
私のWCFサービスの動作は次のように定義されていInstanceContextMode.PerSession
ます:
しかし、私がそれを消費すると、サービスはPerCallとして動作し、すべての呼び出しは現在のインスタンスを使用する代わりに新しいWCFインスタンスを開始します。
wsHttpBindingを使用するときにInstanceContextMode.PerSessionがPerCallのように動作するのはなぜですか?
私に何ができる?
wcf - WCF セッションは特定のユーザーに固有のものではありません
WCF 関数
プロキシー
私の問題は、複数のクライアントがサービスにアクセスしているときに、各クライアントが最後に設定されたセッションにアクセスすることです。セッションはブラウザー要求ベースではなく、クライアントを認識しません。どのクライアントがどのリクエストを送信したか。それらを各クライアントに固有のものにするにはどうすればよいですか。各クライアントが独自のセッションを持つ必要があることを意味します。
助けてください
wcf - WCF で SessionMode として "Allowed" を使用するのはいつですか?
WCF サービス コントラクトで SessionMode 値として "Allowed" を使用するシナリオを教えてください。
c# - メッセージ セキュリティまたはトランスポート セキュリティで動作しないセッション
Linux マシンからクライアントと通信できる WCF サービスをセットアップしようとしています。各クライアントの状態を維持しているので、クライアントを追跡できるように、サービスはセッションをサポートできる必要があります。
クライアントは、サービスがホストされているネットワーク以外のネットワークから着信するため、カスタムの UserNamePasswordValidator と ServiceAuthorization マネージャーを使用してクライアントを認証しています。
Security.Message.ClientCredentialType = MessageCredentialType.Windows を使用すると、Windows マシンからサービスに接続でき、WCF セッションが確立されます。ここまではすべて正常に動作します。
ただし、Linux から接続するクライアントで動作させる必要があると最初に述べたように、SecurityMode.TransportWithMessageCredential と SecurityMode.Message を使用しようとしました。WCF から、証明書を使用して通信を暗号化するように求められたので、それを実行しました。ただし、セッションを機能させることができません。クライアントからの呼び出しごとに、ServiceSecurityContext.Current.AuthorizationContext.Id が変更されます。
MessageCredentialType.Windows を使用せずに WCF セッションで動作するようにするには、次のコードで何を変更する必要があるか教えてください。
要するに、SecurityMode.TransportWithMessageCredential または SecurityMode.Message を使用すると、WCF セッションが機能しないということです。
wcf - セッション ID は、WCF の単一インスタンス コンテキスト モードの異なるクライアントで同じになりますか?
セッション ID は、WCF のシングル インスタンス コンテキスト モードで異なるクライアントに対して同じになりますか?
詳しく説明してください。
wcf - セッションごとに 1 回だけ WCF で ClaimsAuthenticationManager.Authenticate を呼び出す
wcf サービス用にカスタム ClaimsAuthenticationManager をセットアップします。メソッド ClaimsAuthenticationManager.Authenticate がすべての wcf 呼び出しに対して実行されることがわかりました。代わりに、不必要なオーバーヘッドを避けるために、セッションごとに 1 回実行したいと考えています。
マイクロソフトによると:
クレーム認証マネージャーは通常、次の例外を除いて、セッションごとに 1 回呼び出されます。
ソース: https://msdn.microsoft.com/en-us/library/ee748487.aspx
私のカスタム バインディングはトランスポート セキュリティを使用しないため、呼び出しごとに ClaimsAuthenticationManager.Authenticate が実行される理由がわかりません。
代わりに、このメソッドをセッションごとに 1 回呼び出すために満たす必要がある追加の要件があるかどうかは誰にもわかりませんか? ご提案いただきありがとうございます。
wcf バインディング構成:
c# - WCF 独自の EndpointBehavior 読み取りクライアント セッション
メソッドが実装されたIClientMessageInspector
インターフェイスがあります。このメソッドでは、クライアントに設定されたオブジェクトBeforeSendRequest()
を取得したいと考えています。Session
何かのようなもの。
この質問と非常によく似たものが必要だと思います。