通过Request.UrlReferrer从.aspx页面获取电子邮件帐户URL。在asp.net中

时间:2015-03-03 07:07:53

标签: asp.net

我有一个“注册用户”.aspx页面。 我想将此页面链接发送到电子邮件帐户,用户强制点击此链接进入此页面。 我使用"Request.UrlReferrer"获取url页面的电子邮件帐户.aspx以验证用户,但"Request.UrlReferrer"无法返回电子邮件帐户url且其值为null 我的页面加载代码:

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();

有例外

2 个答案:

答案 0 :(得分:1)

你不能。 Webmail是通过HTTPS访问的,它隐藏了引荐来源,我认为用户的邮件地址无论如何都在Webmail URL中(例如https://www.gmail.com/inbox/mailid)。

只需在您在邮件中发送的网址中使用标识符,因此点击后,您可以将链接与您网站上的用户相关联。

答案 1 :(得分:0)

首选注册后,将激活码发送到用户的电子邮件中 您的用户表格中应该有ActivationCode列,以获取更多详细信息Here

但基于你的问题:

1-您无法访问previousPageUrl,因为它首先在阻止

中定义

2-如果您在没有按下链接的情况下打开浏览器,那么您将获得null 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())
                {
                }
            }
        }