2010-05-21 37 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>