3

私はクレームサポートを実装したいMVC3アプリを持っています。次のように私の目標は次のとおりです。MVC3 + WIF - FederationResultに "wctx"がありません

  1. 等、ユーザ名/パスワードやFacebook/WindowsLiveWeの/ Googleとポップアップウィンドウが

  2. をリンククリックしたディスプレイサインインリンクは、自動的に私のサインインページにリダイレクト提供します保護されたコントローラにアクセスする/注文/削除

私はアプリケーションとプロバイダをAppFabricLabs.comに設定し、プロジェクトにSTSを含めました。また、IAuthorizationFilterの実装を作成しましたので、コントローラを[WifAuth]としてマークし、呼び出されたOnAuthorizationメソッドを正常に取得できます。

private static void AuthenticateUser(AuthorizationContext context) 
    { 
     var fam = FederatedAuthentication.WSFederationAuthenticationModule; 
     var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm); 
     context.Result = new RedirectResult(signIn.WriteQueryString()); 
    } 

し、正常に私のアイデンティティプロバイダの選択肢(そのページをカスタマイズする方法を考え出したていない)でAppFabricLabsページを取得する:私は訪問者が、このように認証されていないユースケースを実装しました。私は私にreturnurlにログインすると私は、コントローラのメソッド/ホーム/ FederationResultに上陸呼び出されます、しかし、私にポストされたフォームはフィールドのみWAwresultが含まれていますが、私はどこのユーザーを送信するために知ってwctxを必要としています。 ..私は理由を理解することができませんでした。

wresultは、ログインしているユーザーの名前と電子メールアドレスを含んでいるXML文書ですが、悲しいことにユーザーが向いていたURLは含まれていません。

私は何かを設定できませんでしたか?誰か考え?

  • 電子

答えて

3

だけSignInRequestMessageのためのコンテキストを指定します。

signIn.Context = HttpContext.Current.Request.RawUrl; 

wctxパラメータはすべてのリクエスト/レスポンスともあなたのサイトに最終的にはポストされたフォームの一部に含まれています。

+0

素晴らしいです。私の場合、 'signIn.Context = context.HttpContext.Request.RawUrl'。 – ekkis

関連する問題