我公司有几个用ASP.NET编写的Web应用程序。我们需要将这些应用程序提供给Intranet用户以及经过身份验证的外部用户。这两个组的大多数功能都相同,尽管内部用户可以使用一些额外的功能。两组不同的用户将使用略有不同的安全设置...我们的内部人员将针对Exchange使用LDAP进行身份验证,而外部用户将在SQL Server中拥有帐户。

部署我们的Web应用程序的最佳方法是什么?我们是否应该将2个副本部署到不同的服务器,一个副本配置为Intranet,一个副本配置为外部用户?还是有更好的方法在两台服务器之间共享代码,但是可以灵活地使用不同的web.config设置来提高安全性?

最佳答案

这是您的追求: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>

它的作用是允许任何具有“admin”角色的用户拒绝所有其他用户访问该文件夹中的资源。有很多组合和可能性。请注意,此处声明权限的顺序很重要。值得尝试一下,以便您完全了解它是如何工作的。

特定于页面的设置可以按以下方式处理:
<location path="page.aspx">
    <system.web>
      <authorization>
         <allow roles="Administrators" />
      </authorization>
     </system.web>
 </location>

关于asp.net - 如何部署和保护ASP.NET Web应用程序以供内部和外部用户使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2883545/

10-09 23:32
查看更多