【发布时间】:2014-11-19 19:13:46
【问题描述】:
如何确定用户是否从其他地方(即从新标签或其他网站)访问我的网站?我需要向仍然登录的返回用户显示“欢迎回来”消息,但如果他们只是在我的网站中导航,或者说,重新加载主页,我不希望它出现。
我考虑过使用Onload/Onbeforeunload(或类似的)来跟踪当前是否有打开的视图,但这只会增加复杂性。
我可以假设如果Request.UrlReferrer 不包含我的域,那么这是一次“新”访问吗?
【问题讨论】:
-
你不能总是依赖
Request.UrlReferrer,因为它很容易被禁用,一些浏览器甚至不发送它。如果用户通过书签返回您的网站,它也不会被设置。 -
引荐来源网址是来自浏览器的有关用户最后访问页面的唯一信息。但这只是用户浏览器提供的内容(即您不能告诉浏览器“向我发送正确的推荐人”,例如参见addons.mozilla.org/en-US/firefox/addon/refcontrol)。但是,鉴于大多数用户的大部分时间,引荐来源网址将包含当前选项卡访问的最后一页。不要忘记在常用浏览器中验证“在新标签/窗口中打开链接”和“重复标签”情况)。
-
@DGibbs 如何禁用
Request.UrlReferrer?当我从另一个站点/新标签/书签到达时,Chrome、FF 和 IE 都提供了一个 nullRequest.UrlReferrer,但是当我在我的站点中浏览时(包括“在新标签/窗口中打开链接”),它包含以前的 URL。这是否意味着假设 nullRequest.UrlReferrer构成外部访问是安全的选择,或者即使在我自己的网站中浏览时也可以禁用它?
标签: c# asp.net .net asp.net-mvc