如何区分来自.NET Web浏览器控件或普通浏览器的请求?

时间:2015-07-17 11:53:35

标签: .net asp.net-mvc

我要求停止从.net浏览器控制到服务器的请求。我已经创建了http模块并插入到asp.net网站。代码如下:

public class CustomAuthentication : IHttpModule
{
    private static Logger logger = LogManager.GetCurrentClassLogger();

    public void Init(HttpApplication context)
    {
        context.PreRequestHandlerExecute += new EventHandler(this.OnPreRequestHandlerExecute);
    }

    public void OnPreRequestHandlerExecute(object source, EventArgs e)
    {
        HttpApplication application = (HttpApplication) source;
        HttpContext context = application.Context;

        logger.Log(LogLevel.Info, context.Request.UserAgent);
        if (context.Request.Browser.Browser.Contains("IE")
        {
            context.Response.Status = "403 Forbidden";
            context.Response.Close();
        }

普通IE浏览器也发送相同的名称。我不能仅限制.Net IE浏览器的请求,因为,正常的IE浏览器也发送同名。是否有任何属性可用于识别请求是否来自.net浏览器?

1 个答案:

答案 0 :(得分:0)

无法知道请求是来自.NET浏览器控件还是普通IE。

如果您可以更改使用Web浏览器控件的此程序,则可以放置自定义用户代理,然后阻止此类请求。以下是如何更改.NET浏览器控件的用户期限的说明:

http://www.lukepaynesoftware.com/articles/programming-tutorials/changing-the-user-agent-in-a-web-browser-control/