我公司有几个用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/