转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP.NET 安全性         ★★★★
表 1:Windows 身份验证和模拟要求授权选项需要 Windows 身份验证需要模拟

FileAuthorizationModule

UrlAuthorizationModule

Principal Permission Demands

.NET Roles

Enterprise Services Roles

是(在 ASP.NET Web 应用程序中)

NTFS 权限(用于直接请求的静态文件类型;没有映射到 ISAPI 扩展的文件类型)

不适用— ASP.NET 不处理这些文件。
在任何(非匿名)IIS 身份验证机制中,应为各个已验证的用户配置权限。
在匿名身份验证中,应为 IUSR_MACHINE 配置权限。

否(IIS 执行访问检查。)

NTFS 权限(用于 Web 应用程序代码访问的文件)


如果使用模拟,请根据模拟的 Windows 标识配置 ACL,该标识可以是原调用者,也可以是 Web.config 中的 <identity> 元素指定的标识。

带模拟的 Windows 身份验证

以下配置元素显示了如何明确启用 Web.config 或 Machine.config中的 Windows (IIS) 身份验证和模拟。

应根据每个应用程序的具体情况,在应用程序的 Web.config 文件中配置身份验证。

<authentication mode="Windows" />
<identity impersonate="true" />

在此配置中,ASP.NET 应用程序代码模拟已由 IIS 验证身份的调用者。

可配置的安全性

当您将 Windows 身份验证和模拟功能一起使用时,就可以使用下列授权选项:

WindowsACLs

客户端请求的资源。ASP.NET FileAuthorizationModule 对映射到 ASP.NET ISAPI 的请求文件类型执行访问检查。它使用原调用者的访问令牌和附加到请求资源的 ACL 以便执行访问检查。

对于静态文件类型(没有映射到 ISAPI 扩展),IIS 使用调用者的访问令牌和附加到文件的 ACL 执行访问检查。

应用程序访问的资源。可以根据原调用者,在应用程序访问的资源(文件、文件夹、注册表项和 Active Directory 对象等)上配置 Windows ACL。

URL 授权。在 Web.config 中配置 URL 授权。在 Windows 身份验证中,用户名采用 DomainName\UserName 的格式,并且角色与 Windows 组 一 对应。

<authorization>
  <deny user="DomainName\UserName" />
  <allow roles="DomainName\WindowsGroup" />
</authorization>

Enterprise Services (COM+) 角色。角色保存在 COM+ 目录中。可以使用“组件服务”管理工具或脚本配置角色。

编程安全性

编程安全性是指 Web 应用程序代码中的安全检查。在您使用 Windows 身份验证和模拟功能时,可以使用下列程序安全设置选项:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 


[C语言系列]NET 中C#的switch语句的语法  [系统软件]托拽Explore中的文件到VB.net的窗口
[系统软件]Boost库在XP+Visual C++.net中的安装  [常用软件]新配色面板:Paint.Net3.0RC1官方下载
[常用软件]用内建的“Net Meeting”聊天  [VB.NET程序]Henry的VB.NET之旅(三)—共享成员
[VB.NET程序]Henry的VB.NET之旅(二)—构造与析构  [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体
[VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET)  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)

ASP.NET 安全性

作者:闵涛 文章来源:闵涛的学习笔记 点击数:6745 更新时间:2009/4/23 10:44:53

图 1. ASP.NET 安全服务

图 1 阐释了 IIS 和 ASP.NET 所提供的身份验证和授权机制。当客户端发出 Web 请求时,就会发生以下一系列身份验证和授权事件:

1.

接收来自网络的 HTTP(S) Web 请求。可以使用 SSL 确保服务器身份(使用服务器证书)和客户端身份(可选)的安全。

SSL 还提供了一个安全通道,以便保护在客户端和服务器之间传递的机密数据。

2.

IIS 使用基本、简要、集成(NTLM 或 Kerberos)或证书身份验证方式验证调用者的身份。如果站点的所有或部分内容不需要通过身份验证即可访问,则可将 IIS 配置为使用匿名身份验证。IIS 为每个通过身份验证的用户创建一个 Windows 访问令牌。如果选择匿名身份验证,则 IIS 为该匿名 Internet 用户帐号(默认为 IUSR_MACHINE)创建访问令牌。

3.

IIS 授权调用者访问所请求的资源。使用附加到所请求资源的 ACL 定义的 NTFS 权限授权访问。IIS 也可以配置为只接受来自特定 IP 地址的客户端计算机的请求。

4.

IIS 将通过身份验证的调用者的 Windows 访问令牌传递给 ASP.NET (如果使用匿名身份验证,则它可能是匿名 Internet 用户的访问令牌)。

5.

ASP.NET 验证调用者的身份。

如果 ASP.NET 配置为使用 Windows 身份验证,则此时不会发生任何其他的身份验证。ASP.NET 将接受它从 IIS 接收的任何令牌。

如果 ASP.NET 配置为使用窗体身份验证,则将根据数据存储(通常为 SQL Server 数据库或 Active Directory 目录服务)对调用者提供的凭证进行身份验证(使用 HTML 窗体)。如果 ASP.NET 配置为使用 Passport 身份验证,则将用户重定向到 Passport 站点,然后 Passport 身份验证服务对用户进行身份验证。

6.

ASP.NET 授权访问所请求的资源或操作。

UrlAuthorizationModule(系统提供的 HTTP 模块)使用在 Web.config 中配置的授权规则(具体来讲就是 <authorization> 元素),确保调用者可以访问所请求的文件或文件夹。

在 Windows 身份验证下,FileAuthorizationModule(另一个 HTTP 模块)会检查调用者是否具有访问所请求资源的必要权限。将调用者的访问令牌与保护资源的 ACL 进行比较。

也可以使用 .NET 角色(以声明方式或编程方式)确保调用者被授权访问所请求的资源或执行所请求的操作。

7.

应用程序中的代码使用特定标识来访问本地和/或远程资源。默认情况下,ASP.NET 不执行模拟,因此,由配置好了的 ASP.NET 进程帐号提供标识。也可以选择原调用者的标识(如果启用了模拟)或已配置的服务标识。

网关守卫

ASP.NET Web 应用程序中的授权点或网关守卫是由 IIS 和 ASP.NET 提供的:

IIS

如果关闭了匿名身份验证,则 IIS 只允许来自特定用户的请求,即它可以在其自己的域或受信任域中验证这些用户的身份。

对于静态文件类型(例如 .jpg、.gif 和 .htm 文件,即没有映射到 ISAPI 扩展的文件),IIS 使用与所请求的文件相关的 NTFS 权限来执行访问控制。

ASP.NET

ASP.NET 网关守卫包括 UrlAuthorizationModuleFileAuthorizationModule 和主体权限要求和角色检查。

UrlAuthorizationModule

可以配置应用程序 Web.config 文件中的 <authorization> 元素来控制哪些用户和用户组可以访问应用程序。授权是基于存储在 HttpContext.User 中的 IPrincipal 对象进行的。

FileAuthorizationModule

对于被 IIS 映射到 ASP.NET ISAPI 扩展(Aspnet_isapi.dll) 的文件类型,使用已验证用户的 Windows 访问令牌(可能是 IUSR_MACHINE),根据附加到所请求的 ASP.NET 文件的 ACL 自动执行访问检查。

要进行文件授权,并不要求模拟。

FileAuthorizationModule 类只对所请求的文件执行访问检查,而不对所请求的页面中的代码所访问的文件执行访问检查,但 IIS 对这些文件执行访问检查。

例如,如果您请求 Default.aspx,并且它包含一个嵌入的用户控件(Usercontrol.ascx),而该控件又包含一个图像标签(指向 Image.gif),则 FileAuthorizationModule 会对 Default.aspx 和 Usercontrol.ascx 执行访问检查,因为 IIS 将这些文件类型映射到 ASP.NET ISAPI 扩展。

FileAuthorizationModule 不对 Image.gif 执行访问检查,因为它是由 IIS 内部处理的静态文件。然而,由于 IIS 对静态文件执行访问检查,所以仍然使用进行相应配置的 ACL 对已验证用户授予读取该文件的权限。

图 2 显示了此方案。

对于系统管理员:需要给已通过身份验证的用户授予读取此方案中涉及的所有文件的 NTFS 权限。惟一的变化是使用哪个网关守卫来执行访问控制。ASP.NET 进程帐号只需要读取 ASP.NET 注册文件类型的访问权限。

f08sn02

图 2. IIS 和 ASP.NET 网关守卫一起使用

在此方案中,您可以在文件入口处禁止访问。如果您配置了附加到 Default.aspx 的 ACL,并且拒绝访问某个特定的用户,则 Default.aspx 中的代码无法将用户控件或任何嵌入图像发送到客户端。如果该用户直接请求图像,则 IIS 亲自执行访问检查。

主体权限要求和明确的角色检查

除了可以用 IIS 和 ASP.NET 配置的网关守卫外,还可以将主体权限要求(以声明方式或编程方式)用作附加的细分访问控制机制。通过使用主体权限检查(由 PrincipalPermissionAttribute 类执行),您可以根据各个用户的标识和组成员身份(由附加到当前线程的 IPrincipal 对象定义)控制访问类、方法或个别代码块。

用于请求角色成员身份的主体权限要求与调用 IPrincipal.IsInRole 来测试角色成员身份不同;如果调用者不是指定角色的成员,则前者产生异常,而后者仅返回一个布尔值来确认角色成员身份。

在 Windows 身份验证中,ASP.NET 自动将一个代表已验证身份用户的 WindowsPrincipal 对象连接到当前的 Web 请求(使用 HttpContext.User)。窗体和 Passport 身份验证创建具有相应标识但没有角色的 GenericPrincipal 对象,并将它附加到 HttpContext.User

更多信息

有关配置安全性的详细信息,请参见本章后面的“配置安全性”。

有关编程安全性(和 IPrincipal 对象)的详细信息,请参见本章后面的“编程安全性”。

返回页首返回页首

身份验证和授权策略

ASP.NET 提供了若干以声明方式和编程方式进行授权的机制,这些机制可与各种身份验证方案配合使用。这样,您就可以开发深入的授权策略以及可以配置为提供各种粒度级别(例如,基于角色的每用户或每用户组)的授权策略。

本节说明一组常用身份验证选项的可用授权选项(可进行配置和编程)。

下面概述了身份验证选项:

带模拟的 Windows 身份验证

不带模拟的 Windows 身份验证

使用固定身份的 Windows 身份验证

窗体身份验证

Passport 身份验证

可用的授权选项

下表列出了一组可用的授权选项。对于每个选项,该表都指出是否需要 Windows 身份验证和/或模拟。如果特定授权选项不需要 Windows 身份验证,则该选项适用于所有其他的身份验证类型。可以使用该表优化身份验证/授权策略。

教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台