限制IP地址以访问Web应用程序

时间:2017-09-11 10:44:28

标签: c# asp.net

我在IIS中发布了我的Web应用程序,并且在运行时遇到错误

'/'应用程序中的服务器错误。

配置错误 描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

分析器错误消息:无法加载类型'SecurityHttpModule'。

My Web Config Like

    <httpModules>  
    <add name="SecurityHttpModule type="SecurityHttpModule"/>
    </httpModules>  

My SecurityHttpModule Like

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    public interface IHttpModule
    { }
    namespace BankSuite 
    {
    public class SecurityHttpModule : IHttpModule
    {
    public SecurityHttpModule() { }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(Application_BeginRequest);
    }

    private void Application_BeginRequest(object source, EventArgs e)
    {
        HttpContext context = ((HttpApplication)source).Context;
        string ipAddress = context.Request.UserHostAddress;
        if (!IsValidIpAddress(ipAddress))
        {
            context.Response.StatusCode = 403;  // (Forbidden)

        }
    }

    private bool IsValidIpAddress(string ipAddress)
    {
        return (ipAddress == "127.0.0.1");
    }

    public void Dispose() { /* clean up */ }
    }
    }

1 个答案:

答案 0 :(得分:0)

好像你错过了name的结束语 确保它不像reall config

那样

尝试使用Fully qualified name NamespaceQualifiedTypeName, AssemblyName进行指定

类似于BankSuite.SecurityHttpModule, AssemblyName - 其中AssemblyName对应于您的dll名称

如果您使用集成模式的iis 7+,请使用

<configuration>
<system.webServer>
    <modules>
        <add name="SecurityHttpModule" type="BankSuite.SecurityHttpModule, AssemblyName"/>
    </modules>
</system.webServer>
</configuration>

代替。