如何部署和保护ASP.NET Web应用程序以供内部和外部用户使用?

Swo*_*op 5 asp.net iis asp.net-mvc

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

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

Dan*_*son 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>
Run Code Online (Sandbox Code Playgroud)

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

页面特定的设置可以这样处理:

<location path="page.aspx">
    <system.web>
      <authorization>
         <allow roles="Administrators" />
      </authorization>
     </system.web>
 </location>
Run Code Online (Sandbox Code Playgroud)