Janrain RPXログインを使用して以前のURLを取得するにはどうすればよいですか?
Asp.NetMVCを使用してリクエストしています。
Janrain RPXログインを使用して以前のURLを取得するにはどうすればよいですか?
Asp.NetMVCを使用してリクエストしています。
匿名ユーザーがセキュリティで保護されたビューを参照すると、asp.netは自動的にそれらをサインインページにリダイレクトし、クエリ文字列にReturnUrlを配置します。ReturnUrlは、RPXログインで使用されるtoken_urlに追加することで保持できます。
サインインページでRPXiframeの正しいhrefを生成するために作成したヘルパーは次のとおりです。
public static string RpxSignInUrl(this HtmlHelper htmlHelper)
{
string returnUrl = FormsAuthentication.GetRedirectUrl(
String.Empty, // userName (not used, but cannot be null)
false); // persistent cookie (also ignored)
string tokenUrl = "http://<your-domain>/Account/RpxResponse?ReturnUrl=" +
HttpUtility.UrlEncode(returnUrl);
string realm = "<your-app-id>.rpxnow.com";
string signInUrl = String.Format(
CultureInfo.InvariantCulture,
"http://{0}/openid/embed?token_url={1}",
realm,
HttpUtility.UrlEncode(tokenUrl));
return signInUrl;
}
ユーザーが認証した後、RPXはこのURLを呼び出します。このURLには元のReturnUrlが含まれています。FormsAuthentication.GetRedirectUrl
再度使用して、戻りURLを取得できます。
Request.Querystringコレクションから値を取得するだけでなく、このAPIを使用することが重要であることに注意してください。これは、戻りURLを検証し、同じドメインからのものであることを確認するためです。URLが安全でないと見なされた場合、asp.netはweb.configのforms要素で指定されたdefaultUrlプロパティにフォールバックします。