分享
 
 
 

在 Intranet 环境中保护 .NET Web 应用程序

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

内容简介

基于 Intranet Web 应用程序的安全性并不是不重要,因为它存在于许多控制网络中,并且对一个限制集合中的用户是可以访问的。不同个体和部门可能需要对应用程序提供的功能和数据有不同的访问等级,所以在传输过程中仍然必须保护机密数据的安全性。为了使问题复杂化,应用程序的安全性结构必须补偿任何安全性相关的问题,这些问题源于存在的基础和要配置应用程序的 Intranet 的操作特点。

通过关注某些常用分布式应用程序结构的要求,本章介绍了基于 Intranet Web 应用程序的身份验证、授权、安全通信的推荐解决方法。

目标

使用本章的目的:

适用于:

本章适用于下面的产品和技术:

如何使用本章

为了从本章中获得最大的益处:

本页内容

如果同类 Intranet 中的所有计算机均运行 Microsoft Windows 2000 或更高版本的操作系统,并且在域中信任用户使用委派,则可以选择将原调用方的安全性上下文委派到后端。

您还必须考虑安全通信问题。尽管您的应用程序运行在 Intranet 环境中,也不能认为在网络中传送的数据是安全的。除了需要保护应用程序服务器和数据库之间传送的数据外,可能还需要保护浏览器和 Web 服务器之间传送的数据。

本章使用以下常见的 Intranet 方案来阐释主要的身份验证、授权和安全通信技术:

此外,本章还介绍了一个 Windows 2000 委派方案(“将原调用方传递到数据库”)。在此方案中,使用中间 Web 服务器和应用程序服务器,在操作系统级别将原调用方的安全性上下文和标识从浏览器传递到数据库。

注本章中描述的几个方案或者替换用于运行 ASP.NET 应用程序的默认 ASPNET 帐户,或者更改其密码以允许在远程计算机上创建重复的帐户。这些方案要求更新 Machine.config 中的 <processModel> 元素。<processModel> 凭据不应该以明文形式存储在 machine.config 中。而应该使用 aspnet_setreg.exe 工具以加密凭据的形式存储在注册表中。有关详细信息请参见本指南中的“ASP.NET安全性”和 Microsoft 知识库文章 Q329290 “HOWTO: Use the ASP.NET Utility to Encrypt Credentials and Session State Connection Strings”(如何做:使用 ASP.NET 工具加密凭证和会话状态链接字符串)。

ASP.NET 到 SQL Server在此方案中,人力资源数据库在同类 Intranet 中安全地提供每个用户的数据。应用程序使用受信任的子系统模型并代表原调用方执行调用。应用程序使用集成 Windows 身份验证来验证调用方的身份,并使用 ASP.NET 进程标识来调用数据库。由于数据本身所具有的机密性,因此,在 Web 服务器和客户端之间使用了 SSL。

图 1 显示此应用程序方案的基本模型。

到 SQL Server

特点本方案具有以下特点:

保护方案在此方案中,Web 服务器验证调用方的身份,并通过使用调用方的标识限制对本地资源的访问。要限制原调用方对资源的访问,您不必在 Web 应用程序中进行模拟。数据库验证 ASP.NET 默认进程标识(它是权限最少的帐户)的身份(即数据库信任 ASP.NET 应用程序)。

表 1:安全措施

类别

详细信息

在 ASP.NET 内使用 Windows 身份验证(不模拟)。

通过将 SQL Server 配置为使用 Windows 身份验证,确保数据库连接的安全。

数据库信任 ASP.NET 辅助进程以进行调用。可以在数据库中验证 ASP.NET 进程标识的身份。

Web 应用程序对原调用方执行 .NET 角色检查,以限制对页面的访问。

保护在原调用方和 Web 应用程序之间传送的机密数据

结果图 2 显示了此方案的建议安全配置。

到 SQL Server Intranet 方案的建议安全配置

安全配置步骤在开始之前,您需要查看以下内容:

配置 IIS

步骤

更多信息

启用集成的 Windows 身份验证

单击“目录安全性”选项卡,然后单击“匿名访问和验证控件”组中的“编辑”。

配置 ASP.NET

步骤

更多信息

ASPNET 是权限最少的本地帐户,默认情况下用来运行 ASP.NET Web 应用程序。

通过使用“本地用户和组”将 ASPNET 帐户的密码设置为一个已知值。

编辑位于 %windir%\Microsoft.NET\Framework\ v1.0.3705\CONFIG 中的 Machine.config 并重新配置 <processModel> 元素的 userName 和 password 属性

默认

成为

注意,使用 aspnet_setreg.exe 工具以在加密密码的形式存储在注册表中。

将 <authentication> 元素设置为:

默认情况下模拟处于关闭状态;不过,请执行如下操作,再次检查以确保它在 Web.config 中是关闭的:

删除 <identity> 元素也能达到同样的效果。

配置 SQL Server

步骤

更多信息

给予该帐户以下权限:

- 从网络访问此计算机

- 拒绝本地登录

- 以批处理作业登录

配置安全通信

步骤

更多信息

分析•

WindowsPrincipal 对象:

ASP.NET FileAuthorizationModule 针对原调用方在 ACL 中检查在 IIS 中映射到 aspnet_isapi.dll 的 ASP.NET 文件类型。对于静态文件类型(例如 .jpg、.gif 和 .htm 文件),IIS 充当关守,它根据文件的相关 NTFS 权限,使用原调用方的标识执行访问检查。

应用程序通过用角色名和密码调用内置的存储过程,来激活 SQL 应用程序角色。因此,必须安全地存储密码。当使用 SQL 应用程序角色时,还必须禁用数据库连接池,因为它会严重影响应用程序的可伸缩性。

有关 SQL Server 数据库用户角色和 SQL Server 应用程序角色的详细信息,请参见本指南中的“数据访问安全性”。

问与答•

应用程序模拟,以便使用配置的 ACL 针对原调用方来保护 Web 应用程序所访问的资源?

如果启用模拟,则模拟的安全性上下文不具有网络凭据(假定未启用委派并且您使用的是集成 Windows 身份验证)。因此,对 SQL Server 的远程调用将使用 NULL 会话,而这将会导致调用失败。如果禁用模拟,则远程请求使用 ASP.NET 进程标识。

上述方案使用 ASP.NET FileAuthorizationModule,它使用 Windows ACL 针对原调用方标识执行授权,并且不要求进行模拟。

如果您使用基本身份验证而不是集成 Windows 身份验证 (NTLM),并且确实启用了模拟,则每个数据库调用都将使用原调用方的安全性上下文。每个用户帐户(或用户所属的 Windows 组)都要求使用 SQL Server 登录。需要限制 Windows 组(或原调用方)访问数据库对象的权限以确保安全性。

相关方案非 Internet Explorer 浏览器

对 IIS 执行集成 Windows 身份验证需要使用 Internet Explorer。在混合浏览器环境中,您的典型选项包括:

。.大多数浏览器都支持基本身份验证。由于用户的凭据是通过网络传递的,所以必须使用 SSL 来保证此方案的安全。

如果根据 Active Directory 进行身份验证,请确保仅检索与应用程序有关的必要的组。正如不应该使用 SELECT * 子句对数据库执行查询一样,不应盲目地从 Active Directory 中检索所有的组。

如果根据数据库进行身份验证,您需要仔细分析 SQL 命令中使用的输入值,以防止 SQL 注入攻击,并且应该在数据库中存储密码哈希值(带有 salt),而不是存储明文密码或加密密码。

有关使用 SQL Server 作为凭据存储和将密码存储在数据库中的详细信息,请参见本指南中的“数据访问安全性”。

注意,在所有情况中,如果您没有使用集成 Windows 身份验证(其中,由平台为您管理凭据),则最后将使用 SSL。不过,此优点仅限于身份验证过程。如果您通过网络传递安全机密数据,则仍须使用 IPSec 或 SSL。

对数据库的 SQL 身份验证在有些方案中,您可能必须使数据访问安全性而不是首选的 Windows 身份验证。例如,在 Web 应用程序和数据库之间可能设置了防火墙,或者由于安全原因,Web 服务器可能不属于您所在的域。这也会妨碍 Windows 身份验证。这种情况下,您可以在数据库和 Web 服务器之间使用 SQL 身份验证。为保证此方案的安全,您应该:

将原调用方传递到数据库在此方案中,使用原调用方的安全性上下文从 Web 应用程序调用数据库。使用此方法时,一定要注意以下几点:

本章后面的“将原调用方传递到数据库”部分讨论了委派方案。

ASP.NET 到 Enterprise Services 到 SQL Server在此方案中,ASP.NET 页面调用 Enterprise Services 应用程序中驻留的业务组件,而 Enterprise Services 应用程序又连接到数据库上。例如,请看一个内部定单系统,它通过 Intranet 进行交易并允许内部部门下定单。图 3 中显示了此方案。

会在 Enterprise Services 中调用一个组件,该组件将调用该数据库

特点本方案具有以下特点:

保护方案在此方案中,Web 服务器验证原调用方的身份,并将调用方的安全性上下文传递到服务组件。服务组件基于原调用方的标识授予业务功能的访问权限。数据库根据 Enterprise Service 应用程序的进程标识进行身份验证(即数据库信任 Enterprise Services 应用程序中的服务组件)。当服务组件调用数据库时,它在应用程序级别传递用户的标识(通过使用受信任的查询参数)。

表 2:安全措施

类别

详细信息

将原调用方的安全性上下文传递到服务组件以支持 Enterprise Services (COM+) 角色检查。

使用 Windows 身份验证保护数据库连接的安全。

数据库信任服务组件的标识以调用数据库。数据库验证 Enterprise Services 应用程序进程标识的身份。

使用 IPSec 保护在 Web 服务器和数据库之间传送的机密数据。

结果图 4 显示了此方案的建议安全配置。

到本地Enterprise Services 到 SQL Server 的 Intranet 方案的建议安全配置

安全配置步骤在开始之前,您需要查看以下内容:

配置 IIS

步骤

更多信息

启用集成的 Windows 身份验证

配置 ASP.NET

步骤

更多信息

将 <authentication> 元素设置为:

将 <identity> 元素设置为:

编辑 Machine.config 并找到 <processModel> 元素。确认将 comImpersonationLevel 属性设置为 Impersonate (默认设置)

配置 Enterprise Services

步骤

更多信息

这可以通过使用“组件服务”工具,或通过位于服务组件程序集中的以下 .NET 属性进行配置。

可以使用服务组件程序集中的 .NET 属性来定义角色。

配置 SQL Server

步骤

更多信息

给予该帐户以下权限:

- 从网络访问此计算机

- 拒绝本地登录

- 以批处理作业登录

配置 SQL Server 以便进行 Windows 身份验证

为 Enterprise Services 帐户创建一个 SQL Server 登录

配置安全通信

步骤

更多信息

分析•

缺陷•

ASP.NET 到 Web Services 到 SQL Server在此方案中,运行 ASP.NET 页的 Web 服务器连接到远程服务器上的 Web 服务。该服务器又连接到远程数据库服务器。例如,请看一个提供用户特定机密数据的人力资源 Web 应用程序。此应用程序依赖 Web 服务进行数据检索。图 5 显示了此应用程序方案的基本模型。

到远程 Web 服务到 SQL Server

Web 服务公开一个允许个别雇员检索他或她的个人详细信息的方法。必须使用 Web 应用程序只给通过身份验证的个人提供详细信息。 Web 服务还提供了一个支持任何雇员详细信息检索的方法。只有人力资源或工资部门的成员可以使用此功能。在此方案中,将雇员分为三个 Windows 组:

由于数据本身所具有的保密性,应保证所有节点之间通信的安全。

特点•

保护方案在此方案中,驻留 ASP.NET Web 应用程序的 Web 服务器验证原调用方的标识,并将它们的安全性上下文传递到驻留 Web 服务的远程服务器。这样就可以对 Web 方法应用授权检查,以允许或拒绝对原调用方的访问。数据库验证 Web 服务进程标识的身份(数据库信任 Web 服务)。Web 服务反过来调用数据库,并使用存储过程参数在应用程序级别传递用户的标识。

表 3:安全措施

类别

详细信息

Web 服务在 IIS 中使用集成 Windows 身份验证。它对 Web 应用程序所委派的原调用方安全性上下文进行身份验证。

可以使用 Kerberos 身份验证协议,通过委派将原调用方安全性上下文从 Web 应用程序传递到 Web 服务。

可以使用 Windows 身份验证,通过 ASP.NET 进程帐户连接到数据库。

通过使用基于原调用方 Windows 组成员身份的 .NET 角色,控制对 Web 服务方法的访问。

可通过使用 IPSec 来保护在 Web 服务和数据库之间传送的机密数据。

结果图 6 显示了此方案的建议安全配置。

到 Web 服务到 SQL Server 的 Intranet 方案的建议安全配置

安全配置步骤在开始之前,您需要查看以下内容:

配置 Web 服务器(它驻留 Web 应用程序)

配置 IIS

对 Web 应用程序的虚拟根目录启用 Windows 集成身份验证

将 <authentication> 元素设置为:

将 <identity> 元素设置为:

配置应用程序服务器(它驻留 Web 服务)

配置 IIS

对 Web 服务的虚拟根目录启用 Windows 集成身份验证

ASPNET 是权限最少的本地帐户,默认情况下用来运行 ASP.NET Web 应用程序。

通过使用本地用户和组将 ASPNET 帐户的密码改为一个已知值。

编辑位于 %windir%\Microsoft.NET\Framework\ v1.0.3705\CONFIG 中的 Machine.config

并重新配置 <processModel> 元素的 userName 和 password 属性:默认值

将 <authentication> 元素设置为:

默认情况下模拟处于关闭状态;不过,请执行如下操作,再次检查以确保它在 Web.config 中是关闭的:

注意,由于默认情况下禁用模拟,因此通过删除 <identity> 元素可以达到同样的效果。

配置 SQL Server

步骤

更多信息

给予该帐户以下权限:

- 从网络访问此计算机

- 拒绝本地登录

- 以批处理作业登录

配置安全通信

步骤

更多信息

分析•

Credentials 属性以明确地指定这一点:

有关使用凭据调用 Web 服务的详细信息,请参见本指南中的“Web 服务安全性”。

可以使用 PrincipalPermissionAttribute 类在 Web 方法中加上注释,以查询特定的角色成员身份,如以下代码示例所示。注意,可以用 B>PrincipalPermission 代替 PrincipalPermissionAttribute。这是所有 .NET 属性类型的共同特性。

上述代码中显示的属性表示,只允许 DomainName\HRDept Windows 组的成员调用 RetrieveEmployeeDetails 方法。如果任何非成员试图调用此方法,就会发生安全异常。

缺陷•

另一种方法是,考虑使用权限最少的域帐户。有关选择 ASP.NET 进程标识的详细信息,请参见本指南中的“ASP.NET 安全性”。

问与答数据库不知道谁是原始调用方。我如何能创建一条审核记录?

审核 Web 服务中的最终用户活动,或者将用户的标识作为数据访问调用的参数明确地进行传递。

相关方案

如果您需要连接到非 SQL Server 数据库,或者目前使用的是 SQL 身份验证,则必须使用连接字符串明确地传递数据库帐户凭据。如果您这样做,请确保安全地存储连接字符串。

有关详细信息,请参见本指南中的“数据访问安全性”中的“安全存储连接字符串”。

ASP.NET 到 Remoting 到 SQL Server在此方案中,运行 ASP.NET 页的 Web 服务器安全地连接到远程应用程序服务器上的远程组件。Web 服务器通过使用 .NET Remoting 在 HTTP 通道上与该组件进行通信。远程组件由 ASP.NET 驻留。图 7 显示了此方案。

到 remoting using .NET Remoting 到 SQL Server

特点•

保护方案在此方案中,驻留 ASP.NET Web 应用程序的 Web 服务器验证原调用方的身份。Web 应用程序可以从 HTTP 服务器变量中检索调用方的身份验证凭据(用户名和密码)。然后,Web 应用程序通过配置远程组件代理,使用这些凭据连接到驻留远程组件的应用程序服务器。数据库使用 Windows 身份验证来验证 ASP.NET 进程标识的身份(即,数据库信任远程组件)。远程组件反过来调用数据库,并使用存储过程参数在应用程序级别传递原调用方的标识。

表 4:安全措施

类别

详细信息

在远程组件 (ASP.NET /IIS) 中使用 Windows 身份验证。

使用权限最少的 ASP.NET 帐户,通过 Windows 身份验证连接到数据库。

在远程组件中对原调用方执行角色检查。

授予 ASP.NET(远程组件)标识访问数据库的权限。

使用 IPSec 保护在 Web 服务器和数据库之间传送的机密数据。

结果图 8 显示了此方案的建议安全配置。

到远程 Web 服务到 SQL Server 的 Intranet 方案的建议安全配置

安全配置步骤在开始之前,您需要查看以下内容:

配置 Web 服务器

配置 IIS

启用基本身份验证

将 <authentication> 元素设置为:

配置应用程序服务器

配置 IIS

步骤

更多信息

启用集成 Windows 身份验证

中)配置为使用 Windows 身份验证

将<authentication> 元素设置为:

ASPNET 是权限最少的本地帐户,默认情况下用来运行 ASP.NET Web 应用程序(此处用于运行远程组件主机进程)。

通过使用本地用户和组将 ASPNET 帐户的密码改为一个已知值。

编辑位于 %windir%\Microsoft.NET\Framework\ v1.0.3705\CONFIG 中的 Machine.config

Machine.config 并重新配置 <processModel> 元素的 userName 和 password 属性

默认

成为

注意,使用 aspnet_setreg.exe 工具以在加密密码的形式存储在注册表中。

默认情况下模拟是关闭的;不过请复查一下,确保它在 web.config 中是关闭的,如下所示:

删除 <identity> 元素也能达到同样的效果。

配置 SQL Server

步骤

更多信息

给予该帐户以下权限:

- 从网络访问此计算机

- 拒绝本地登录

- 以批处理作业登录

配置安全通信

步骤

更多信息

分析•

服务器和应用程序服务器上的 ASP.NET 作为权限最少的本地帐户运行,因此一旦遭到攻击,潜在危害被大大降低。这两种情况下,均使用默认的 ASPNET 帐户。

使用 ASPNET 本地帐户(在 SQL Server 计算机上具有重复的帐户)可进一步降低潜在的安全风险。数据库服务器上的重复 Windows 帐户允许在应用程序服务器上使用权限最少的 ASP.NET 帐户来运行远程组件。

为使用调用方的凭据来调用远程组件,Web 应用程序按如下所示的代码段来配置远程组件代理。

有关将安全凭据传递到远程组件的详细信息,请参见本指南中的“.NET Remoting安全性”。

即使没有模拟,也可以执行基于角色的检查。

缺陷•

相关方案

Web 服务器使用 Kerberos 来验证调用方的身份。使用 Kerberos 委派将原调用方的安全性上下文传递到应用程序服务器上的远程组件。

此方法要求将所有用户帐户配置为使用委派。还将 Web 应用程序配置为使用模拟,并且 Web 应用程序使用 DefaultCredentials 来配置远程组件代理。本指南中的“.NET Remoting安全性”中的“传送原调用方”部分深入讨论了这种技术。

将原调用方传递到数据库前面讨论的方案使用了受信任的子系统模型,并且在所有情况下,数据库都信任应用程序服务器或 Web 服务器以便正确地对用户进行身份验证和授权。虽然受信任的子系统模型具有许多优点,但是某些方案(多半是出于审核原因)可能要求您使用模拟/委派模型,并且跨计算机边界将原调用方的安全性上下文一直传递到数据库。

需要将原调用方传递到数据库的典型原因包括:

这与没有细分且基于任务的授权正好相反,后者由角色成员身份决定特定对象的读写能力。

如果您确实选择了模拟/委派模型(或者由于公司的安全策略而必须这样做),并将原调用方的上下文通过应用程序层传递到后端,则在设计时必须考虑委派和网络访问问题(在跨多台计算机时,这个问题很重要)。共享资源池(如数据库连接)也是一个关键的问题,它可能会显著降低应用程序的伸缩性。

这部分说明如何为两个最常见的应用方案实现模拟/委派:

有关受信任的子系统模型和模拟/委派模型及其相对优点的详细信息,请参见本指南中的“身份验证和授权设计”。

ASP.NET 到 SQL Server在此方案中,使用原调用方的安全性上下文来调用数据库。这部分描述的身份验证选项包括基本身份验证和集成 Windows 身份验证。“ASP.NET 到 Enterprise Services 到 SQL Server”部分描述了 Kerberos 委派方案。

在 Web 服务器上使用基本身份验证以下基本身份验证配置设置允许将原调用方一直传递到数据库。

表 5:安全措施

类别

详细信息

在 ASP.NET. 中使用 Windows 身份验证。

在 ASP.NET 中启用模拟。

使用 Windows 身份验证与 SQL Server 进行通信。

如果将原调用方映射到 Windows 组(基于应用程序的要求,例如 Managers、Tellers 等),则可以对原调用方进行 .NET 角色检查以限制对方法的访问。

要保护在 Web 应用程序和数据库之间传送的所有机密数据,请使用 IPSec。

在此方法中,一定要注意以下几点:

在 Web 服务器上使用集成 Windows 身份验证集成 Windows 身份验证导致 NTLM 或 Kerberos 身份验证,具体情况取决于客户机和服务器计算机的配置。

NTLM 身份验证不支持委派,因此不允许将原调用方的安全性上下文从 Web 服务器传递到物理上的远程数据库。在浏览器和 Web 服务器之间使用单个网络中继点以便进行 NTLM 身份验证。要使用 NTLM 身份验证,必须在 Web 服务器上安装 SQL Server,这可能仅适用于很小的 Intranet 应用程序。

ASP.NET到 Enterprise Services 到 SQL Server 在此方案中,ASP.NET 页调用远程 Enterprise Services 应用程序中驻留的业务组件,而这些组件又连接到数据库上。原调用方的安全性上下文从浏览器一直传递到数据库。图 9 中显示了这种情况。

在 Enterprise Services 中调用一个组件,该组件调用数据库

特点•

保护方案在此方案中,Web 服务器验证调用方的身份。然后,您必须将 ASP.NET 配置为使用模拟,以便将原调用方的安全性上下文传递到远程 Enterprise Services 应用程序。在 Enterprise Services 应用程序中,组件代码必须明确地模拟调用方(使用 CoImpersonateClient),确保将调用方的上下文传递到数据库。

表 6:安全措施

类别

详细措施

在 ASP.NET 和远程 Enterprise Services 应用程序中的服务组件之间使用 RPC 数据包保密性(提供加密)。

在服务组件和数据库之间使用 IPSec。

结果图 10 显示了此方案的建议安全配置。

调用 Enterprise Services 中的一个组件,该组件调用数据库。原调用方的安全性上下文传递到数据库。

安全配置步骤在开始之前,应注意以下配置问题:

配置 Web 服务器 (IIS)

步骤

更多信息

启用 Windows 集成的身份验证

服务器 (ASP.NET)

将 <authentication> 元素设置为:

将 <identity> 元素设置为:

ASP.NET Web 应用程序通过 DCOM 调用远程服务组件。用于 ASP.NET 所发出调用的默认模拟级别是“Impersonate”。在 Machine.config 中必须将它更改为“Delegate”。

编辑 Machine.config 并找到 <processModel> 元素,将 comImpersonateLevel 属性设置为 "Delegate"(如下所示)。

编辑 Machine.config 并找到 <processModel> 元素,将 comAuthenitcationLevel 属性设置为 "PktPrivacy",如下所示。

CoImpersonateClient() 和 CoRevertToSelf(),以便使用调用方的上下文。默认情况下,使用 Enterprise Services 进程上下文进行传出调用。

添加对 OLE32.DLL 的引用:

在调用远程资源之前,先调用这些外部函数:

有关详细信息,请参见本指南中的“Enterprise Services 安全性”。

这可以通过使用“组件服务”工具,或通过位于服务组件程序集中的以下 .NET 属性进行配置。

将以下 .NET 属性添加到服务组件程序集。

要在进程和组件级别(包括接口和类)配置角色检查,请使用下列属性。

有关配置接口和方法级角色检查的详细信息,请参见本指南中的“Enterprise Services 安全性”中的“配置安全”。

访问控制策略将 Windows 组按角色进行处理。例如,您可以设置类似 B>Employees、HRDept 和 PayrollDept 的组。

LocalSystem 帐户运行的,则需要在 Active Directory 中将运行它的帐户标记为“可以委派其他帐户”。

如果 IIS 是使用 LocalSystem 帐户运行的,则必须将计算机帐户标记为“可以委派其他帐户”。有关详细信息,请参见本指南中的“How To Implement Kerberos Delegation for Windows 2000”。

WindowsPrincipal 对象,并将它附加到当前的 Web 请求上下文 (HttpContext.User)。如果您需要在 Web 应用程序中执行授权检查,则可以使用下面的代码。

ASP.NET FileAuthorizationModule 针对原调用方在 ACL 中检查在 IIS 中映射到 Aspnet_isapi.dll 的 ASP.NET 文件类型。对于静态文件类型(例如 .jpg、.gif 和 .htm 文件),IIS 充当关守,它使用原调用方的标识执行访问检查。

缺陷•

小结本章介绍了如何保护一套常见的 Intranet 应用程序方案。

有关 Extranet 和 Internet 应用程序方案,请参见本指南中的“在 Extranet 环境中保护 .NET Web 应用程序 ”和“在 Internet 环境中保护 .NET Web 应用程序 ”。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有