只允许1个可以访问ASP.NET网站的IP

时间:2013-09-29 16:14:45

标签: c# php asp.net .htaccess

我创建了新的ASP.NET网站。我在Visual Studio中编辑(打开WebSite并通过FTP)。我想阻止所有人查看网站,除了我的IP地址。

在PHP中,我在.htaccess中这样做:

RewriteEngine On
RewriteBase /

RewriteCond %{REMOTE_ADDR} !^XX\.XXX\.XXX\.XX$ //my IP

RewriteCond %{REQUEST_URI} !^/construct

RewriteRule (.*) /construct/index.php [R=307,L] //redirect when other IP access website

在ASP.NET中我只找到了这个解决方案(在Web.config中):

<?xml version="1.0"?>
<configuration>
    <system.web>
      <customErrors mode="Off"/>
    </system.web>
  <system.webServer>
    <security>
      <ipSecurity allowUnlisted="false">
        <clear/>
        <add ipAddress="XXX.XXX.X.X" allowed="true"/>
      </ipSecurity>
    </security>
  </system.webServer>
</configuration>

但这对我不起作用。当我写完这篇文章后进入页面时,它会给我以下错误:

服务请求时出现

错误。 服务器未返回任何可显示的网站。 问题的可能原因在于生成此网页的脚本。

问题是什么或我怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试任何一个并存储一个字符串变量

string ip=HttpContext.Current.Request.UserHostAddress.ToString(); 
or 
string ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
or
string ip=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();

//然后检查IP地址是否匹配。如果为true,则允许访问您的代码

if(ip=="xxx.xxx.xx.x")//Your IP address 
{
//your code is here 

}