| ASP.NET入门 |
|
作者:mike 文章来源:internet 点击数: 更新时间:2004-9-2 20:05:29  |
|
运行时的 Web 应用程序安全性
身份验证
ASP.NET 支持通过以下方法对用户进行身份验证。其中几种方法与 IIS 身份验证相重叠。有关详细信息,请参见介绍 Web 应用程序安全性。
身份验证类型 说明 匿名访问 用于未知用户将在其中发出请求的应用程序(通常是公共 Web 应用程序)。与 IIS 重叠。 基本和简要身份验证 (与 IIS 重叠)在此方案中,将提示无凭据的用户提供用户名和密码。 Windows 集成安全性 (NTLM) (与 IIS 重叠)如果发出请求的用户已经在基于 Windows 的网络中进行了身份验证,则在请求对资源的访问时,IIS 就可以通过该用户的凭据。 证书身份验证 (与 IIS 重叠)在此方案中,客户端具有已从第三方来源获取的证书(数字标识)。该证书通过请求传递到您的应用程序。 Kerberos (与 IIS 重叠)Kerberos 身份验证协议定义客户端与称作密钥分发中心 (Key Distribution Center, KDC) 的网络身份验证服务之间的交互。Windows 2000 在每个域控制器上以身份验证服务的形式来实现一个 KDC。有关详细信息,请参见 Kerberos 协议的基本概念。 Forms 身份验证 如果需要对某用户进行身份验证,ASP.NET 则会将请求重定向到您指定的页。该页通常包含一个您要在其中获取用户名信息的窗体。(如需额外的安全性,可以使用 HTTPS 协议交换该窗体。)当应用程序获取窗体信息时,它可以对用户的凭据执行应用程序特定的检查。值得注意的是,身份验证进程在您的控制之下(与 IIS 不同),这使您能够指定窗体的外观并选择存储用户信息的方式。 如果某用户成功通过身份验证,ASP.NET 将颁发一个包含特定标记的加密 Cookie,该标记将为后继的访问标识该用户。
Passport 身份验证 利用 ASP.NET,您可以检查那些具有从符合 Microsoft Passport 的应用程序中获取的凭据的用户。 如果某用户成功通过身份验证,ASP.NET 将颁发一个包含特定标记的加密 Cookie,该标记将为后继的访问标识该用户。
在 ASP.NET 应用程序中,Forms 身份验证通常是最佳的选择,因此它使您能够在很大程度上控制如何对用户进行身份验证并允许您将身份验证存储在一个标记中。
XML Web services 安全性 XML Web services 使用 ASP.NET 并作为 Web 应用程序来运行,因此它们所参与的安全性模型与任何 ASP.NET 应用程序所参与的安全性模型都相同。例如,XML Web services 可能配置为使用基本身份验证或 Windows 集成安全性。
在设计时,当您尝试向 XML Web services 添加引用(即请求 XML Web services 的发现文档)时,该 XML Web services 将按照它的配置来执行标准的 Web 应用程序身份验证。例如,如果 XML Web services 配置为使用基本身份验证,该服务将需要从发出请求的客户端获取用户名和密码。在 Visual Studio 中,通常使用添加 Web 引用对话框来发现 XML Web services。例如,如果 XML Web services 使用的是基本身份验证,“添加 Web 引用”对话框将提示您提供凭据。
如果您正在生成的应用程序包含对 XML Web services 的调用,则需要确保在进行调用之前具有正确的凭据,否则该调用将会失败。在运行时,可以通过在调用 XML Web services 的方法之前设置表示 XML Web services 的客户端对象的 Credentials 属性来向 XML Web services 传递凭据。
由于其他 ASP.NET 安全性选项可能不够灵活,XML Web services 可以实现一种凭据信息在 SOAP 标头中进行传递的自定义身份验证解决方案。在该解决方案中,凭据在客户端和服务器之间交换的消息的可选部分进行传递。然后可以编写一个自定义的 HttpModule(实现 IHttpModule 接口),它可以侦听标头中的信息并调用您的身份验证代码。
与其他 ASP.NET 应用程序相同,XML Web services 可能会实现基于特定角色的授权,以限制对应用程序特定部分的访问。
建立 SSL 和加密 若要使用 SSL 和加密,必须获取您所在公司或标识的服务器证书。证书是一种数字签名,它标识您的站点,使其无法被模拟。对于 Internet(公共)应用程序,可以从公认的第三方证书颁发机构获取服务器证书。对于私有 (Intranet) 应用程序,您自己就可以颁发服务器证书。您这样做的目的可能是为了确保内部应用程序(如个人站点)的安全。
服务器证书还使您能够使用加密。SSL 使用一种称作“公钥加密”(public key encryption) 的加密方法。这种形式的加密机制中有两个密钥:公钥用于对数据进行加密;私钥由您密存,用于对用公钥加密的信息进行解密。您所获取的服务器证书包含一个公钥。当用户需要使用 SSL 时,您的应用程序将向浏览器发送证书和公钥。然后,浏览器和服务器使用公钥来建立一种对它们的信息交换进行加密的方式。
注意 若要使用 SSL,浏览器必须支持长度至少为 40 位的加密。大多数浏览器都提供这种级别的加密。 当获取服务器证书后,可以指示用户将 https:// 用作前缀来获取和发送 Web 页,以使用 SSL。IIS 和浏览器将自动使用加密信道来交换信息。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> |
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: asp.net 1.1 安装手册
下一篇文章: 关于.net的一些基本的东西 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |