首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Janrain RPX中获取“返回url”

如何在Janrain RPX中获取“返回url”
EN

Stack Overflow用户
提问于 2010-08-13 02:16:07
回答 1查看 758关注 0票数 3

如何使用Janrain RPX登录获取之前的url?

我正在使用Asp.Net MVC来请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-22 03:06:36

当匿名用户浏览到受保护的视图时,asp.net会自动将他们重定向到SignIn页面,并将ReturnUrl放在查询字符串中。您可以通过将ReturnUrl附加到在RPX登录中使用的token_url来保留它。

下面是我创建的帮助程序,用于在我的SignIn页面上为RPX iframe生成正确的href:

代码语言:javascript
复制
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,它现在包含了原始的ReturnUrl。您可以再次使用FormsAuthentication.GetRedirectUrl来检索返回的url。

注意,使用这个API而不是仅仅从Request.Querystring集合获取值是很重要的,因为它会验证返回的url,确保它来自相同的域。如果该url被认为是不安全的,asp.net将回退到在web.config中的forms元素上指定的defaultUrl属性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3470707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档