2010-05-21 48 views
5

我的公司有幾個用ASP.NET編寫的Web應用程序。我們需要將這些應用程序提供給Intranet用戶以及經過驗證的外部用戶。這兩個組的大部分功能都是相同的,但內部用戶可以使用一些額外的功能。這兩組不同的用戶將使用稍微不同的安全設置...我們的內部人員將使用LDAP對Exchange進行身份驗證,而外部用戶將在SQL Server中擁有帳戶。如何部署和保護ASP.NET Web應用程序以供內部和外部用戶使用?

什麼是部署我們的網絡應用程序的最佳方法?我們是否應該將2個副本部署到不同的服務器,一個配置爲Intranet,一個配置給外部用戶?或者是否有更好的方法來共享2臺服務器之間的代碼,但是可以靈活地使用不同的web.config設置來保證安全?

回答

3

這是你所追求的:http://msdn.microsoft.com/en-us/library/ms972958.aspx

它是專門關於混合窗口和窗體身份驗證。

您可以通過添加額外的web.config文件,該文件夾加密文件夾:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="admin" /> 
     <deny users="*" /> 
    </authorization> 
    </system.web> 
</configuration> 

這樣做是允許的角色爲「管理員」任何人,在文件夾中拒絕所有其他用戶訪問資源。有很多組合和可能性。請注意,在這裏聲明權限的順序非常重要。這是值得嘗試的,以便你完全理解它是如何工作的。

特定頁面的設置可以這樣處理:

<location path="page.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Administrators" /> 
     </authorization> 
    </system.web> 
</location>