2017-08-02 73 views
0

目前我有一个MVC注册页面,在外部网站上实现。提取外部网站的URL参数

我的问题是我需要现在提取以前网站的查询字符串的某个参数,并将其读入我的页面注册用户到指定的组。

所以工作流程如下所示:

  • 用户点击外部网站(例如:www.test1.com/default.aspx?Code=123asd),在查询字符串代码

  • 用户选择立即注册并被定向到我的页面。

我将如何读取以前的查询字符串代码到我的MVC页面?我无法访问该网站。

编辑

我现在有一个foreach语句读取当前的查询字符串但这不拉以前的请求的查询字符串:

private static string getCode() 
    { 
     string nothing = null; 

     string[] queryStringParaArray = HttpContext.Current.Request.UrlReferrer.Query.Substring(1).Split('='); 

     if (queryStringParaArray.Length > 0) 
     { 
      foreach (var para in queryStringParaArray) 
      { 
       if (para.Contains("Code")) 

        return queryStringParaArray[2]; 
      } 


     } 
     return nothing; 

    } 
+0

有没有这样的事情,如MVC 7.你想要的也不能可靠地实现。第二件最好的事情是,如果你真的可以让链接网站追加他们的查询字符串到你的网址。 – CodeCaster

回答

0

你试过HttpRequest.UrlReferrer属性,它包含的网址客户端先前的请求链接到当前的URL。这会返回一个Uri对象,因此您可以访问Query属性以获取其查询字符串值。

HttpContext.Request.UrlReferrer 

**旁注:由于已经评论,也不能保证被称为URL会出现,因此它可能是null为好。因此,建议您将该查询字符串信息直接传递给您的MVC控制器,同时点击Register按钮。

+0

如果客户端被配置为发送该消息,如果源站点不是HTTPS,并且_if_您相信客户端不会更改它,因为它是客户端发送的头(因此可以更改)。 – CodeCaster

+0

@CodeCaster,是的真的......在回答中添加了一个注释 – Rahul

+0

@Rahul我目前在foreach语句中搜索参数“Code”。查询字符串不牵引前一个请求。我将在我的问题 –