c# - 蜘蛛/机器人 UserAgent 检测 C#

标签 c# asp.net user-agent

我正在开发一个应用程序,如果用户不在我们的浏览器列表中,它会重定向用户以升级浏览器。

我的目标是创建一个异常,根据它们的 UserAgent 字符串检测它们是否是爬虫。

此时,我收到一条消息......“.ToLower 没有定义或扩展方法”

这是我的代码:

    private bool IsValidCrawler(HttpRequestBase request)
    {
        bool isCrawler = true;

        switch (request.Browser.Crawler.ToLower())  
        {
            case "googlebot":
            case "bingbot":
            case "yahoo!":
            case "facebookexternalhit":
            case "facebookplatform":
                break;
        }

        return isCrawler;
    }

谁能指出我哪里出错了?

最佳答案

如果您查看 Crawler 属性 ( http://msdn.microsoft.com/en-us/library/system.web.configuration.httpcapabilitiesbase.crawler(v=vs.110).aspx) 的文档,您会注意到它是一个 bool 类型。

该属性本身会让您知道请求是否来自已知的爬虫。您可以暂时尝试以下方法。保留方法,这样您就不必更改太多。

private bool IsValidCrawler(HttpRequestBase request)
{
    bool isCrawler = request.Browser.Crawler;

    return isCrawler;
}

关于c# - 蜘蛛/机器人 UserAgent 检测 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866814/

相关文章:

c# - 单元测试 IExtension<OperationContext> 以用于 WCF 服务

c# - 从 Azure Blob 存储下载文件

c# - 用于表单例份验证的 Web.Config,匿名用户不可用的位置

http - 为什么我的 HTTP_USER_AGENT 不总是一样的?

c# - FormView ItemTemplate 中的 ASP.net 访问控制

c# - DataTable importRow() 到空表

asp.net - 在 ASP.NET 中使用无序列表设置导航样式的最佳方法

asp.net - ASP.NET Web 应用程序的 SQL Server 身份验证

javascript - 在 javascript 中检测 Mountain Lion (OS X 10.8)?

android - 在我的应用程序中获取不包含 webview 的用户代理