2012-01-05 10 views
2

だから私はほとんどMSDNの例(http://msdn.microsoft.com/en-us/library/ms731872.aspx)からベース、カスタムトークンを作成しているが、私はそれを動作させるように見えることはできません。私はいつもこのエラーが発生します」「基本的な」添付ファイルモードのセキュリティトークンに署名する必要があります。ログに記録する。私は明らかにそれがコンパイルし、問題がどこにあるか私が見ることができない) Bを実行する)コードベースの上に数回 Aとなっています。 ログメッセージだけではそれほど役に立ちません。私はそれが証明書で何かかもしれないと思ったが、私はそれを打ち負かされ、いくつかの異なる証明書(localhostなどに設定されたサーバ名を使用するもの)を作成した。WCF CustomTokenエラー "基本的な添付ファイルモードのセキュリティトークンに署名する必要があります。"

このため、Googleの検索ではほとんど何もターンアップません。

誰もが、これがある、または私は多分見ることができる場所だけ教えてどのような手掛かりを得ましたか。私が言ったように - 私はこのコードを何回も経験していますが、認可ポリシーが作成され、そのすてきなものがすべて見られます。証明書が設定されているのがわかります。投稿するコードがあれば、実装するクラスは非常に多いです。誰かが私が見ているかもしれないアイデアを持っているなら、私はその特定のクラス/コードスニペットを投稿することができます。

おかげ

+0

あなたはトレースを有効にして例外が起源とその時点でパラメータ場所を確認するために要求パスに従っています。サービストレースビューア:http://msdn.microsoft.com/en-us/library/ms732023.aspx – Lloyd

+0

ええ - それは私がそのエラーメッセージを得た方法です、クライアントからのメッセージはさらに曖昧です。冗長なログオンで、エラーが発生する直前にサービスがメッセージを受け取れるようになりました。暗号化キーのUIDがあることがわかり、次のメッセージはエラーで、本当にそれが表示されます。何でも – Kenn

答えて

1

はこちらをご覧ください:http://social.msdn.microsoft.com/forums/en-us/wcf/thread/F822CCB9-A8A1-474F-87AF-E5CD9EC34494

...トークンを正しく安全保障の "ID" プロパティをコピーしていませんでした。 これは、サーバー上のセキュリティトークンに対して新しいIDが作成されていたため、セキュリティ署名データと一致しなくなり、メッセージは拒否されました。お使いのセキュリティトークンをシリアル化するために、カスタムWSSecurityTokenSerializerの実装で

、あなたはおそらく、トークンのIdプロパティをコピーされていません。 IDはクライアントからサーバーに一致する必要があります。

よくある間違い(私はあまりにもなされてきたと確信している1)は、ちょうどid = Guid.NewGuid().ToString()コンストラクタです。それはクリエートでの最初の作成では問題ありませんが、サーバー上で逆シリアル化するときは、新しいGUIDではなくクライアントから同じIDを使用する必要があります。

関連する問題