2013-09-29 111 views
0

我已經創建了新的ASP.NET網站。我正在Visual Studio中編輯(Open WebSite和通過FTP)。我想阻止所有人查看網站,除了我的IP地址。只允許一個IP可以訪問ASP.NET網站

在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> 

但是這並未不適合我。當我在寫入這個頁面後輸入頁面時,它給了我以下錯誤:

服務請求時出錯。 服務器沒有返回任何可以顯示的網站。 問題的可能原因是在生成此網頁的腳本中。

什麼問題或者我該怎麼解決這個問題?

+0

您的應用程序是asp.net還是php? –

+0

你有沒有在服務器上看過[這個清單](http://www.iis.net/configreference/system.webserver/security/ipsecurity)?假設你有,你可以驗證你的客戶端(你的機器)使用的IP是否與你配置的限制匹配? – EdSF

+0

在asp.net中,它並不在我自己的服務器上運行,但我已付費託管,因此無法配置服務器。 – BblackK

回答

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地址匹配。如果屬實,則允許訪問您的代碼

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

} 
+1

我已經解決了這個問題,在masterpage上添加了這個內容,並且在特殊頁面上重定向了除ip地址以外的所有內容。如果有人不能配置服務器,我認爲這是很好的臨時解決方案。感謝這個想法。 – BblackK

相關問題