1

使用表单身份验证的网络网站,将由 Google Mini 设备抓取以进行站点搜索。GMini 有点旧,显然不支持使用表单身份验证抓取网站。据推测,Gmini 不会保留 auth cookie,或者它只是不理解登录表单。

有没有一种方法可以说服 IIS/.Net 将来自 GMini 的 IP 地址的所有请求视为已作为有权访问受保护内容的特定用户登录?

4

1 回答 1

1

global.asax你可以使用并Application_AuthenticateRequest检查用户是否来自ips列表,你会自动登录为:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    // check that is not all ready logged in.
    if(HttpContext.Current.User == null || HttpContext.Current.User.Identity == null || !HttpContext.Current.User.Identity.IsAuthenticated)
    {
        // check if its on your Ip List, or check if(HttpContext.Current.Browser.Crawler)
        if(ListWithPassIps.Contains(HttpContext.Current.Request.UserHostAddress))
        {
            FormsAuthentication.SetAuthCookie("CrowlerLeftToSeethen@email.com", true);
        }
    }
}

可能存在的问题是爬虫没有保存 cookie,但我认为这至少记录了他的那个会话。"CrowlerLeftToSeethen@email.com"可以是您为查看您喜欢的页面而创建的用户。

您还可以request.Browser.Crawler通过更难找到主要搜索引擎之一的 ip 来检查它是否存在。

于 2013-01-09T16:44:08.397 回答