C# 如何识别从其他地方返回ASP.NET MVC站点的用户?

C# 如何识别从其他地方返回ASP.NET MVC站点的用户?,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,如何确定用户是否从其他位置(即从新选项卡或其他站点)访问我的站点?我需要向仍然登录的返回用户显示“欢迎返回”消息,但如果他们只是在我的网站内导航,或者(比如)重新加载主页,我不希望出现此消息 我考虑过使用Onload/onbeforeuload(或类似工具)来跟踪当前是否有打开的视图,但这只会增加复杂性 我可以假设如果Request.urlReferer不包含我的域,那么这是一次“新”访问吗?试试这个 if(Request.UrlReferrer != null && Reque

如何确定用户是否从其他位置(即从新选项卡或其他站点)访问我的站点?我需要向仍然登录的返回用户显示“欢迎返回”消息,但如果他们只是在我的网站内导航,或者(比如)重新加载主页,我不希望出现此消息

我考虑过使用
Onload/onbeforeuload
(或类似工具)来跟踪当前是否有打开的视图,但这只会增加复杂性

我可以假设如果
Request.urlReferer
不包含我的域,那么这是一次“新”访问吗?

试试这个

if(Request.UrlReferrer != null && Request.UrlReferrer.Host != Request.Url.Host)
{
    // User visit your page from another site/domain
}

你不能总是依赖Request.urlReferer,因为它很容易被禁用,有些浏览器甚至不发送它。如果用户通过书签返回到您的站点,也不会设置此选项。推荐人是浏览器中有关用户上次访问页面的唯一信息。但这只是用户浏览器提供的(例如,你不能告诉浏览器“给我发送正确的推荐人”,请参见)。然而,考虑到大多数用户的大多数时间,推荐人将包含当前选项卡访问的最后一页。别忘了验证“在新选项卡/窗口中打开链接”和“重复选项卡”在常见浏览器中的情况)。@DGibbs如何禁用
请求.urlReferer
?当我从另一个站点/新选项卡/书签到达时,Chrome、FF和IE都会提供一个空的
请求。UrlReferrer
,但在我的站点内浏览时(包括“在新选项卡/窗口中打开链接”),它包含了以前的URL。这是否意味着假定一个空的
请求是安全的。URLreferer
构成一个外部访问,或者即使在我自己的网站内浏览时也可以禁用它?