2015-03-03 20 views
0

我有一個「註冊用戶」.aspx頁面。 我想將此頁面鏈接發送到一個電子郵件帳戶,用戶強制單擊此鏈接進入此頁面。 我使用"Request.UrlReferrer"獲得的電子郵件帳戶url.aspx頁面來驗證用戶,但"Request.UrlReferrer"不能返回的電子郵件帳戶url其值爲null 網頁的加載代碼:通過Request.UrlReferrer從.aspx頁面獲取電子郵件帳戶URL。在asp.net

protected void Page_Load(object sender, EventArgs e) 
     { 
if (!Page.IsPostBack) 
    string previousPageUrl = Request.UrlReferrer.ToString(); 

string thisPageUrl = Request.Url.ToString(); 
if (previousPageUrl == Request.UrlReferrer.ToString() || thisPageUrl == Request.UrlReferrer.ToString()) 
    { 
    my coads 
    } 
} 

但:

string previousPageUrl = Request.UrlReferrer.ToString(); 

有例外

+1

Request.UrlReferrer可能爲空。 – malkam 2015-03-03 07:15:11

+0

我想通過'字符串previousPageUrl = Request.UrlReferrer.ToString();' – 2015-03-03 07:57:59

回答

0

最好在註冊後向用戶的電子郵件發送激活碼例如 您的用戶表中應該有一列爲ActivationCode以獲取更多詳細信息,請參閱Here

但基於你的問題:

1,你不能訪問到previousPageUrl,因爲它在第一個定義,如果塊

2 - 如果你不按任何鏈接以獲取打開的瀏覽器你會得到空Exception那裏。

試試這個:

if (!Page.IsPostBack) 
     { 
      try 
      { 
       string previousPageUrl = Request.UrlReferrer.ToString(); 
       string thisPageUrl = Request.Url.ToString(); 
       if (previousPageUrl == Request.UrlReferrer.ToString() || thisPageUrl == Request.UrlReferrer.ToString()) 
       { 
       } 
      } 
      catch(NullReferenceException exception) 
      { 
       //Log exception 
      } 
     } 

還是這樣比較好:

if (!Page.IsPostBack) 
     { 
      if (Request.UrlReferrer != null) 
      { 
       string previousPageUrl = Request.UrlReferrer.ToString(); 
       string thisPageUrl = Request.Url.ToString(); 
       if (previousPageUrl == Request.UrlReferrer.ToString() || thisPageUrl == Request.UrlReferrer.ToString()) 
       { 
       } 
      } 
     } 
+0

我想''Request.Url'&'Request.UrlReferrer'可以獲取我的網站頁面url並且無法獲得外部網頁頁面 – 2015-03-03 07:34:45

+0

不,你可以通過兩個項目在本地主機上測試它,就像一塊蛋糕。 – Aria 2015-03-03 07:41:31

+0

@MohammadReza確認註冊用戶請看[這裏](http://barnamenevis.org/showthread.php?409931-%D9%86%D8%AD%D9%88%D9%87-%D8%A7 %D8%B1%D8%B3%D8%A7%D9%84-%DA%A9%D8%AF-%D9%81%D8%B9%D8%A7%D9%84-%D8%B3%D8% A7%D8%B2%DB%8C-%D8%A8%D9%87-%D8%A7%DB%8C%D9%85%DB%8C%D9%84-%DA%A9%D8%A7%D8 %B1%D8%A8%D8%B1-%D8%AB%D8%A8%D8%AA-%D9%86%D8%A7%D9%85-%D8%B4%D8%AF%D9%87)作爲伊朗的論壇。 – Aria 2015-03-03 07:57:27

1

你不能。 Webmail通過HTTPS訪問,HTTPS隱藏了引用鏈接,我認爲用戶的郵件地址無論如何都在webmail URL中(例如,https://www.gmail.com/inbox/mailid)。

只需在您通過郵件發送的URL中使用標識符,點擊後就可以將鏈接與您網站上的用戶相關聯。

+0

但是...我怎麼能理解用戶通過有效的電子郵件地址註冊自己或不? – 2015-03-03 07:40:52

+0

@MohammadReza還有其他的方法可以做到這一點,例如在註冊後發送一個隨機代碼作爲'QueryString'等。 – Aria 2015-03-03 07:45:56

+0

我知道正確嗎?我必須發送隨機字符串到用戶的電子郵件和cheked,如果字符串等於我的字符串值用戶驗證是有效的? – 2015-03-03 07:50:52

相關問題