我的公司有几个用 ASP.NET 编写的 Web 应用程序。我们需要使这些应用程序可供 Intranet 用户以及经过身份验证的外部用户使用。尽管内部用户可以使用一些额外的功能,但这两个组的大多数功能都是相同的。两组不同的用户将使用略有不同的安全设置...我们的内部人员将使用针对 Exchange 的 LDAP 进行身份验证,而外部用户将在 SQL Server 中拥有帐户。
部署网络应用程序的最佳方法是什么?我们是否应该将 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/