当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

ASP.NET 安全结构

  ASP.NET 结构

   

  如图所示,所有 Web 客户端都通过 Microsoft Internet 信息服务 (IIS) 与 ASP.NET 应用程序通信。IIS 根据需要对请求进行身份验证,然后找到请求的资源(如 ASP.NET 应用程序)。如果客户端已被授权,则资源可用。

  当运行 ASP.NET 应用程序时,它可以使用内置的 ASP.NET 安全功能。另外,ASP.NET 应用程序还可以使用 .NET Framework 的安全功能。

  将 ASP.NET 身份验证与 IIS 集成

  除了依赖 IIS 的身份验证功能,您还可以在 ASP.NET 中执行身份验证。考虑 ASP.NET 身份验证时,您应该了解与 IIS 身份验证服务的交互。

  IIS 假定一组凭据映射到一个 Microsoft Windows NT 帐户并且必须使用这些凭据对用户进行身份验证。在 IIS 5.0 和 IIS 6.0 中有三种不同类型的身份验证:基本、摘要式和 Windows 集成安全性(NTLM 或 Kerberos)。可以在 IIS 管理服务中选择要使用的身份验证类型。有关 IIS 身份验证的更多信息,请参见 IIS 文档。

  如果用户请求映射到 ASP.NET 应用程序的 URL,则该请求和身份验证信息将传送给应用程序。ASP.NET 提供 Forms 身份验证。Forms 身份验证是一个系统,将未经身份验证的请求重定向到您创建的 ASP.NET 网页。用户提供凭据并提交该页。如果应用程序对请求进行身份验证,则系统会在 Cookie 中发出一个身份验证票,其中包含用于重新获取标识的凭据或密钥。后面的请求将在请求中包含身份验证票。

  ASP.NET 配置文件安全设置

  ASP.NET 安全设置是在 Machine.config 和 Web.config 文件中进行配置的。与其他配置信息一样,在当前 .NET Framework 安装的 Config 子目录中的 Machine.config 文件中建立基本设置和默认设置。可以在网站根目录和应用程序根目录中的 Web.config 文件中建立特定于站点的设置和特定于应用程序的设置(包括重写 Machine.config 文件中的设置)。子目录会继承上一级目录的设置,除非子目录中的 Web.config 文件重写这些设置。

  Web.config 文件有三个主要的子节:authentication、authorization 和 identity 节。通常在 Machine.config 文件中设置各个安全元素的值,并根据需要在应用程序级别的 Web.config 文件中重写这些值。所有子目录都自动继承那些设置。但是,子目录可以有自己的配置文件,这些配置文件重写继承的设置。

  说明:ASP.NET 配置仅适用于 ASP.NET 资源,即那些注册为由 Aspnet_isapi.dll 扩展在 IIS 中处理的资源。对于不是由 ASP.NET 处理的资源,ASP.NET 配置无法为它们提供授权。因此,所有用户都可以访问 .txt、.htm、.html、.gif?http://www.xvna.com、.jpg?http://www.xvna.com、.jpeg、.asp 和其他类型的文件(受 IIS 权限制约)。例如,虽然一个目录中的 ASP.NET 资源可能由 Web.config 文件限制,但如果目录浏览是打开的且没有其他限制时,所有用户仍然可以查看位于该目录中的文件。您可以通过使用 IIS 管理工具将此类文件扩展名显式映射到 Aspnet_isapi.dll 扩展,将这些类型的文件置于 ASP.NET 安全管理中。但是,通过 ASP.NET 处理这些类型的文件可能会对网站的性能造成影响。

  可以使用 location 配置元素来指定设置要应用到的特定文件或目录。有关更多信息,请参见configSections 元素(常规设置架构)和配置特定文件和子目录。有关 ASP.NET 配置总体情况的更多详细信息,请参见 ASP.NET 配置概述。

  下面的示例演示了一个配置文件的安全节的语法:

  Code

  1<authentication mode="[Windows|Forms| None]">

  2  <forms name="name"

  3    loginUrl="url"

  4    protection="[All|None|Encryption|Validation]"

  5    path="path" timeout="minutes"

  6    requireSSL="[true|false]"

  7    slidingExpiration="[true|false]">

  8    <credentials passwordFormat="[Clear|MD5|SHA1]">

  9      <user name="********"

  10        password="********"/>

  11      </credentials>

  12  </forms>

  13</authentication>

  14

  15<authorization>

  16  <allow users="comma-separated list of users"

  17      roles="comma-separated list of roles" />

  18  <deny  users="comma-separated list of users"

  19      roles="comma-separated list of roles" />

  20</authorization>

  21

  22<identity impersonate ="[true|false]"

  23  userName="domain\username"

  24  password="password" />

  25

  26<trust level="[Full|High|Medium|Low|Minimal]"

  27  originUrl=""/>

  28

  29<securityPolicy>

  30  <trustLevel name="Full" policyFile="internal"/>

  31  <trustLevel name="High" policyFile="web_hightrust.config"/>

  32  <trustLevel name="Medium" policyFile="web_mediumtrust.config"/>

  33  <trustLevel name="Low"  policyFile="web_lowtrust.config"/>

  34  <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>

  35</securityPolicy>

相关内容
赞助商链接