如何使用 Janrain RPX 登录获取以前的 url?
我正在使用 Asp.Net MVC 来请求。
最佳答案
当匿名用户浏览到安全 View 时,asp.net 会自动将他们重定向到登录页面并将 ReturnUrl 放在查询字符串中。您可以通过将 ReturnUrl 附加到 RPX 登录中使用的 token_url 来保留它。
这是我创建的帮助程序,用于在我的登录页面上为 RPX iframe 生成正确的 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 将调用这个现在包含原始 ReturnUrl 的 url。您可以再次使用
FormsAuthentication.GetRedirectUrl
来检索返回 url。请注意,使用此 API 而不是仅从 Request.Querystring 集合中获取值很重要,因为它会验证返回 url,确保其来自同一域。如果 url 被认为不安全,asp.net 将回退到 web.config 中的 forms 元素上指定的 defaultUrl 属性。
关于asp.net-mvc - 如何在 Janrain RPX 中获取 "return url",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3470707/