检测浏览器并阻止用户使用页面的正确方法?
Posted
技术标签:
【中文标题】检测浏览器并阻止用户使用页面的正确方法?【英文标题】:Right way to detect browser and stop user from using page? 【发布时间】:2014-07-24 16:10:14 【问题描述】:好的,我想让用户只有在浏览器是 Chrome 或 IE8-9 时才能使用该页面。 如您所见,我是从后面的代码中这样做的。并且还试图将主 div 的可行性设置为无。
protected void Page_Load(object sender, EventArgs e)
System.Web.HttpBrowserCapabilities browser = Request.Browser;
if (browser.Type.ToString().ToLower().StartsWith("ie"))
if (Convert.ToDecimal(browser.Version) < 8 || Convert.ToDecimal(browser.Version) > 9)
ScriptManager.RegisterStartupScript(this, this.GetType(), "pop", "<script>alert('Your browser is not supported. Please use Chrome or IE7,IE8,IE9');</script>", false);
pagecontainer.Attributes["style"] = "visible:none";
return;
else if (!browser.Type.ToString().ToLower().StartsWith("chrome"))
ScriptManager.RegisterStartupScript(this, this.GetType(), "pop", "<script>alert('Your browser is not supported. Please use Chrome or IE7,IE8,IE9');</script>", false);
pagecontainer.Attributes["style"] = "visible:none";
return;
//blah blah
<div id="pagecontainer" runat="server" >Page Content Goes Here</div>
但它似乎并没有隐藏 div。 我知道我总是可以将用户重定向到警告页面或其他东西,但可以说我不想这样做。我的替代方案是什么?
【问题讨论】:
pagecontainer 变量在哪里定义? pagecontainer是div的id。 使用runat="server"
,您也可以使用pagecontainer.Visible = false;
。
@Bharadwaj 虽然我不是金发女郎,但我正在度过一个金发碧眼的时刻。但是还有其他选择吗?仅供参考。顺便说一句,Scriptmanager 似乎没有出现在屏幕上。任何想法为什么?
您为什么要这样做?顺便说一句,你不能可靠地做到这一点,因为用户可以在任何浏览器中伪造他们的用户代理(用户代理字符串是你获取信息的地方,用户正在使用哪个浏览器)
【参考方案1】:
删除这一行:
pagecontainer.Attributes["style"] = "visible:none";
改用这个:
pagecontainer.Attributes.Add("style", "display:none;");
【讨论】:
以上是关于检测浏览器并阻止用户使用页面的正确方法?的主要内容,如果未能解决你的问题,请参考以下文章