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

标签 asp.net asp.net-mvc iis

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

相关文章:

c# - 使用更新面板时,保存按钮不起作用

c# - 模式对话框 - SharePoint 2010

c# - 用户单击后禁用按钮(在数据列表中)

javascript - 获取选中的输入复选框的 id 并添加到列表中

asp.net-mvc - ASP.Net MVC 你在哪里从实体转换到 View 模型?

asp.net - 管理站点作为 ASP.NET 站点内的文件夹

c# - 复杂列表子项的 ASP.NET MVC 5 编辑选项

asp.net-mvc - 是否可以在MVC网站上使用自定义错误页面,但不能在Web API上使用?

asp.net - IIS Express 未在 Visual Studio 2019 中运行

asp.net - IIS 7.0 - 默认网站不工作