0

私はWCFサービスを使用しています。これにはWsHttpBindingとNetTcpBindingの2つのエンドポイントがあり、サービスはフォーム認証を使用しています。サービスは IIS 7 でホストされています。

これは WsHttpBinding では完全に機能しますが、NetTcpBinding では失敗します。

以下のステートメントで失敗します。

FormsAuthentication.SetAuthCookie("COOKIENAME", false);

例外は次のとおりです。

Object reference not set to an instance of an object.

これについてあなたのアイデアを共有してください。

4

2 に答える 2

0

オプション1:

代替手段として:

  • System.IdentityModel& およびSystem.IdentityModel.SelectorsWCF アセンブリへの参照を追加します。
  • バインディングでセキュリティ モードをメッセージに設定します
  • Message.ClientCredentialTypeに設定MessageCredentialType.UserName
  • から派生した型を作成しUserNamePasswordValidator、唯一のメソッドを実装します。ユーザー名とパスワードのペアが検証されない場合は、SecurityTokenException をスローする必要があります。

サービス ホスト インスタンスの Credentials プロパティで、次のように設定します。

  • UserNameAuthentication.UserNamePasswordValidationModeUserNamePasswordValidationMode.Custom
  • UserNameAuthentication.CustomUserNamePasswordValidatorUserNamePasswordValidator派生クラスの新しいインスタンスに。
  • でサービス証明書を設定しますServiceCertificate.SetCertificate()

proxy.ClientCredentials.UserName.UserNameクライアント側の資格情報ダイアログについては、プロキシを開く/proxy.ClientCredentials.UserName.Password初めて使用する前に、自分で作成し、プロキシセットで作成できます。または、 を実装しSystem.ServiceModel.Dispatcher.IInteractiveChannelInitializerて独自のインタラクティブな初期化 UI を作成する方法を確認することもできます。

オプション 2:

別の代替手段は、これがあなたがやりたいことのように聞こえます.. FormsAuthentication cookie を WCF サービスに渡す

誰かが答えを探している可能性があるため、古い投稿に答えを提供したのはなぜですか。お役に立てれば。

于 2015-11-17T18:15:08.987 に答える