2017-08-02 112 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」。查詢字符串不牽引前一個請求。我將在我的問題 –