谈到ASP.NET程序的权限,一般可分为两种:
1) 账户的权限。
2) 代码的权限。
账户的权限可以限制运行在这个账户下的所有ASP.NET程序能进行什么样的操作,而代码的权限是ASP.NET程序里独有的,它规定了ASP.NET程序能够访问什么样的资源,比如数据库,文件等等。他们对ASP.NET程序是共同影响的,简单地说,ASP.NET程序表现出来的是他们共同作用的交集。
在IIS 5中,Application Pool的默认配置账户是ASPNET。在IIS 6/7中有点不同,ASPNET账户被替成Network Service。以IIS 7为例,如果你使用的是默认的Network Service,那么你的ASP.NET程序能访问的资源都是受Network Service限制的,换句话说,这个账户能访问什么资源,你的ASP.NET程序才能访问资源。Network Service在默认情况下,是可以读写IIS wwwroot文件夹下的所有文件以及在ACL的控制下来访问其他文件夹。
Scenario 1: 在Visual Studio下开发的时候,我们运行Visual Studio的账户是系统账户(登录机器的账户),这个账户的权限比Network Service要大,因而出现一旦把程序部署到IIS中就有错误的情形时,大多可以先从这方面考虑。
Scenario 2: 在以windows集成验证方式连接数据库时,有时也会碰到Network Service账户不能Login的情形,这也是由于在开发时是用系统账户登录数据库的,而在部署到IIS后,是用Network Service来连接数据库。因而需要将Network Service账户添加到数据库中。
代码的权限在ASP.NET中叫做Code Access Security(CAS). 它规定了这个ASP.NET程序能够访问哪些资源。很明显,在一些情况下,账户权限并不能很方便的限制ASP.NET程序能做什么。利用CAS,我们可以限制ASP.NET程序是否能进行文件操作,是否能访问数据库资源。在ASP.NET的配置文件中,它分有5个不同的等级,通过设置不同的等级可以限制程序的访问资源。如果需要详情的话,建议大家可以查看这篇文章:
http://msdn.microsoft.com/en-us/library/ms998326.aspx
Scenario 3: ASP.NET程序部署到付费空间上后便不能创建文件了。这是因为服务器在machie级别定义了CAS,限制所有运行在这台机器上的ASP.NET不能进行文件操作。这样做的目的主要是为了保护服务器的安全。
同时,根据程序需要,我们也可以使用impersonate(通常在windows验证时会用到)。它可以模仿一个特定用户,这样的话,这个thread就运行在这个特定账户上。在域资源的访问中,这是一个很不错的手段来对不同的用户进行限制。
转自:http://www.cnblogs.com/David-Qian/archive/2009/01/09/1372713.html
分享到:
相关推荐
这个“ASP.NET程序设计”可能是一个教学资源或者一本电子书,旨在帮助学习者掌握ASP.NET的核心概念和技术。 在ASP.NET中,程序员可以使用多种编程语言,如C#、VB.NET或F#,来编写服务器端代码。它支持事件驱动的...
### ASP.NET程序设计基础教程课后习题答案解析 #### 第1章 ASP.NET概论 ##### 1.7.1 作业题 **1. 什么是.NET Framework?** .NET Framework是由微软公司推出的一个应用程序开发框架,它支持多种编程语言,并且...
ASP.NET通用权限管理系统是一款基于ASP.NET 2.0技术构建的高效、稳定且灵活的权限控制解决方案。该系统设计的主要目标是为各种Web应用程序提供安全的用户访问控制,确保只有授权的用户才能访问特定的资源或执行特定...
本教程基于ASP.NET程序设计基础,旨在帮助初学者理解并掌握这一强大的开发平台。第2版的更新可能涵盖了更多现代Web开发的最佳实践和技术。 在"ASP.NET程序设计基础教程(第2版)书上例题源代码"中,你可以找到一...
本教程将深入讲解ASP.NET程序设计的基础知识和高级特性,帮助初学者快速掌握这项技术。 首先,ASP.NET的核心概念包括Web Forms、MVC(模型-视图-控制器)和Web API。Web Forms是ASP.NET早期的主要开发模式,它提供...
通过这个案例教程,学习者不仅会掌握ASP.NET 2.0的基本概念和技术,还能通过实际案例学习如何将这些知识应用于解决实际问题,提升其在Web开发领域的技能。每个课件可能包含详细的讲解、示例代码和实践练习,确保理论...
【ASP.NET通用权限管理框架】是一种基于ASP.NET技术构建的高效、灵活的权限控制系统,用于规范和管理用户访问系统资源的权限。此框架的核心目的是确保只有授权的用户或角色能够访问特定的功能模块或数据,从而增强...
ASP.NET MVC是一个强大的Web应用程序开发框架,由微软公司推出,用于构建可维护、高性能和具有优秀用户体验的Web应用。在本资源中,"ASP.NET MVC权限管理系统源代码"是一个使用该框架开发的完整项目,旨在实现高效且...
在"ASP.NET程序设计(C#版)附源码"这个课程或教程中,你将深入学习如何使用C#进行ASP.NET开发。这可能涵盖以下几个关键知识点: 1. **ASP.NET架构**:了解ASP.NET的核心组件,如HTTP管道、页面生命周期和控件模型,...
【标题】:“第二个ASP.NET通用权限管理系统” 在IT领域,权限管理是系统设计中的关键环节,尤其是在企业级应用中。ASP.NET,微软的Web应用程序开发框架,提供了强大的工具和技术来构建这种复杂的系统。"第二个ASP...
在常见问题和解决方案中,我们需要了解 ASP.NET 程序发布过程中的潜在问题和解决方案,包括权限的设置、配置文件的修改、IIS 的重新安装等。这将有助于我们更好地理解和掌握 ASP.NET 程序发布的技术细节。 ASP.NET ...
在这个“比较完整的ASP.NET程序”中,我们可以深入探讨ASP.NET MVC架构,这是一种广泛应用于现代Web开发的技术。 ASP.NET MVC(Model-View-Controller)是一种设计模式,它将应用程序分为三个主要部分:模型、视图...
本教程《ASP.NET程序设计教程与实训(C#语言版)》正是针对这一技术进行深入浅出的讲解,特别适合C#编程语言的初学者。 C#是一种现代化的、类型安全的面向对象编程语言,它是ASP.NET开发的核心语言。C#语法简洁明了...
ASP.NET 角色权限管理系统是基于微软的ASP.NET框架构建的一种高效、安全的用户权限管理解决方案。这个系统设计的核心目标是实现对用户访问资源的精确控制,确保只有具备相应权限的用户才能执行特定的操作。在ASP.NET...
ASP.NET是一种由微软开发的服务器端Web应用程序框架,主要用于构建动态网站、Web应用程序和Web服务。这个"ASP.NET源码——asp.net权限管理系统Demo源码.zip"文件包含了一个基于ASP.NET实现的权限管理系统的示例代码...
《ASP.NET程序开发范例宝典part7》是ASP.NET开发者的重要参考资料,它涵盖了ASP...通过学习《ASP.NET程序开发范例宝典part7》,开发者不仅可以提升技能,还能解决实际开发中遇到的问题,从而提高工作效率和代码质量。
【ASP.NET + MVC 创建用户权限管理范例程序源码】是一个基于Microsoft的ASP.NET框架和MVC(Model-View-Controller)设计模式的项目,旨在提供一个完整的用户权限管理系统。这个系统可以帮助开发者实现对用户角色的...
本压缩包包含的《ASP.NET程序设计实用教程》源代码,旨在帮助学习者通过实际操作理解ASP.NET编程的核心概念和技术。 在ASP.NET中,Web应用程序通常由一系列的网页(.aspx文件)和后台代码(.cs或.vb文件)组成。源...
本文将深入探讨一个具体的场景:ASP.NET程序部署后,尝试使用C#语言调用CMD命令行执行特定任务,但遇到了执行失败的问题。这不仅是一个技术挑战,也是对开发者解决问题能力的一次考验。 ### ASP.NET程序调用CMD的...