﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Otis@.NET</title><link>http://www.cnblogs.com/Yosland/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 03 Dec 2008 05:37:34 GMT</lastBuildDate><pubDate>Wed, 03 Dec 2008 05:37:34 GMT</pubDate><ttl>60</ttl><item><title>（轉）权限系统概要（收集，整理）</title><link>http://www.cnblogs.com/Yosland/archive/2008/05/22/1204441.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Wed, 21 May 2008 17:35:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2008/05/22/1204441.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/1204441.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2008/05/22/1204441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/1204441.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/1204441.html</trackback:ping><description><![CDATA[來自：　<font face="Verdana">http://www.jdon.com/article/7309.html</font><br />
前言：<br />
权限往往是一个极其复杂的问题，但也可简单表述为这样的逻辑表达式：判断&#8220;Who对What(Which)进行How的操作&#8221;的逻辑表达式是否为真。针对不同的应用，需要根据项目的实际情况和具体架构，在维护性、灵活性、完整性等N多个方案之间比较权衡，选择符合的方案。<br />
目标：<br />
直观，因为系统最终会由最终用户来维护，权限分配的直观和容易理解，显得比较重要，系统不辞劳苦的实现了组的继承，除了功能的必须，更主要的就是因为它足够直观。<br />
简单，包括概念数量上的简单和意义上的简单还有功能上的简单。想用一个权限系统解决所有的权限问题是不现实的。设计中将常常变化的&#8220;定制&#8221;特点比较强的部分判断为业务逻辑，而将常常相同的&#8220;通用&#8221;特点比较强的部分判断为权限逻辑就是基于这样的思路。<br />
扩展，采用可继承在扩展上的困难。的Group概念在支持权限以组方式定义的同时有效避免了重定义时<br />
现状：<br />
对于在企业环境中的访问控制方法，一般有三种：<br />
1.自主型访问控制方法。目前在我国的大多数的信息系统中的访问控制模块中基本是借助于自主型访问控制方法中的访问控制列表(ACLs)。<br />
2.强制型访问控制方法。用于多层次安全级别的军事应用。<br />
3.基于角色的访问控制方法（RBAC）。是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是：1.减小授权管理的复杂性，降低管理开销。2.灵活地支持企业的安全策略，并对企业的变化有很大的伸缩性。<br />
名词：<br />
粗粒度：表示类别级，即仅考虑对象的类别(the type of object)，不考虑对象的某个特<br />
定实例。比如，用户管理中，创建、删除，对所有的用户都一视同仁，并不区分操作的具体对象实例。<br />
细粒度：表示实例级，即需要考虑具体对象的实例(the instance of object)，当然，细<br />
粒度是在考虑粗粒度的对象类别之后才再考虑特定实例。比如，合同管理中，列表、删除，需要区分该合同实例是否为当前用户所创建。<br />
原则：<br />
权限逻辑配合业务逻辑。即权限系统以为业务逻辑提供服务为目标。相当多细粒度的权限问题因其极其独特而不具通用意义，它们也能被理解为是&#8220;业务逻辑&#8221;的一部分。比如，要求：&#8220;合同资源只能被它的创建者删除，与创建者同组的用户可以修改，所有的用户能够浏览&#8221;。这既可以认为是一个细粒度的权限问题，也可以认为是一个业务逻辑问题。在这里它是业务逻辑问题，在整个权限系统的架构设计之中不予过多考虑。当然，权限系统的架构也必须要能支持这样的控制判断。或者说，系统提供足够多但不是完全的控制能力。即，设计原则归结为：&#8220;系统只提供粗粒度的权限，细粒度的权限被认为是业务逻辑的职责&#8221;。<br />
需要再次强调的是，这里表述的权限系统仅是一个&#8220;不完全&#8221;的权限系统，即，它不提供所有关于权限的问题的解决方法。它提供一个基础，并解决那些具有&#8220;共性&#8221;的(或者说粗粒度的)部分。在这个基础之上，根据&#8220;业务逻辑&#8221;的独特权限需求，编码实现剩余部分(或者说细粒度的)部分，才算完整。回到权限的问题公式，通用的设计仅解决了Who+What+How 的问题，其他的权限问题留给业务逻辑解决。<br />
概念：<br />
Who：权限的拥用者或主体（Principal、User、Group、Role、Actor等等）<br />
What：权限针对的对象或资源（Resource、Class）。<br />
How：具体的权限（Privilege, 正向授权与负向授权）。<br />
Role：是角色，拥有一定数量的权限。<br />
Operator：操作。表明对What的How 操作。<br />
说明：<br />
User：与 Role 相关，用户仅仅是纯粹的用户，权限是被分离出去了的。User是不能与 Privilege 直接相关的，User 要拥有对某种资源的权限，必须通过Role去关联。解决 Who 的问题。<br />
Resource：就是系统的资源，比如部门新闻，文档等各种可以被提供给用户访问的对象。资源可以反向包含自身，即树状结构，每一个资源节点可以与若干指定权限类别相关可定义是否将其权限应用于子节点。<br />
Privilege：是Resource Related的权限。就是指，这个权限是绑定在特定的资源实例上的。比如说部门新闻的发布权限，叫做"部门新闻发布权限"。这就表明，该Privilege是一个发布权限，而且是针对部门新闻这种资源的一种发布权限。Privilege是由Creator在做开发时就确定的。权限，包括系统定义权限和用户自定义权限用户自定义权限之间可以指定排斥和包含关系(如：读取，修改，管理三个权限，管理 权限 包含 前两种权限)。Privilege 如"删除" 是一个抽象的名词，当它不与任何具体的 Object 或 Resource 绑定在一起时是没有任何意义的。拿新闻发布来说，发布是一种权限，但是只说发布它是毫无意义的。因为不知道发布可以操作的对象是什么。只有当发布与新闻结合在一起时，才会产生真正的 Privilege。这就是 Privilege Instance。权限系统根据需求的不同可以延伸生很多不同的版本。<br />
Role：是粗粒度和细粒度(业务逻辑)的接口，一个基于粗粒度控制的权限框架软件，对外的接口应该是Role，具体业务实现可以直接继承或拓展丰富Role的内容，Role不是如同User或Group的具体实体，它是接口概念，抽象的通称。<br />
Group：用户组，权限分配的单位与载体。权限不考虑分配给特定的用户。组可以包括组(以实现权限的继承)。组可以包含用户，组内用户继承组的权限。Group要实现继承。即在创建时必须要指定该Group的Parent是什么Group。在粗粒度控制上，可以认为，只要某用户直接或者间接的属于某个Group那么它就具备这个Group的所有操作许可。细粒度控制上，在业务逻辑的判断中，User仅应关注其直接属于的Group，用来判断是否&#8220;同组&#8221; 。Group是可继承的，对于一个分级的权限实现，某个Group通过&#8220;继承&#8221;就已经直接获得了其父Group所拥有的所有&#8220;权限集合&#8221;，对这个Group而言，需要与权限建立直接关联的，仅是它比起其父Group需要&#8220;扩展&#8221;的那部分权限。子组继承父组的所有权限，规则来得更简单，同时意味着管理更容易。为了更进一步实现权限的继承，最直接的就是在Group上引入&#8220;父子关系&#8221;。<br />
User与Group是多对多的关系。即一个User可以属于多个Group之中，一个Group可以包括多个User。子Group与父Group是多对一的关系。Operator某种意义上类似于Resource + Privilege概念，但这里的Resource仅包括Resource Type不表示Resource Instance。Group 可以直接映射组织结构，Role 可以直接映射组织结构中的业务角色，比较直观，而且也足够灵活。Role对系统的贡献实质上就是提供了一个比较粗颗粒的分配单位。<br />
Group与Operator是多对多的关系。各概念的关系图示如下：<br />
解释：<br />
Operator的定义包括了Resource Type和Method概念。即，What和How的概念。之所以将What和How绑定在一起作为一个Operator概念而不是分开建模再建立关联，这是因为很多的How对于某What才有意义。比如，发布操作对新闻对象才有意义，对用户对象则没有意义。<br />
How本身的意义也有所不同，具体来说，对于每一个What可以定义N种操作。比如，对于合同这类对象，可以定义创建操作、提交操作、检查冲突操作等。可以认为，How概念对应于每一个商业方法。其中，与具体用户身份相关的操作既可以定义在操作的业务逻辑之中，也可以定义在操作级别。比如，创建者的浏览视图与普通用户的浏览视图要求内容不同。既可以在外部定义两个操作方法，也可以在一个操作方法的内部根据具体逻辑进行处理。具体应用哪一种方式应依据实际情况进行处理。<br />
这样的架构，应能在易于理解和管理的情况下，满足绝大部分粗粒度权限控制的功能需要。但是除了粗粒度权限，系统中必然还会包括无数对具体Instance的细粒度权限。这些问题，被留给业务逻辑来解决，这样的考虑基于以下两点：<br />
一方面，细粒度的权限判断必须要在资源上建模权限分配的支持信息才可能得以实现。比如，如果要求创建者和普通用户看到不同的信息内容，那么，资源本身应该有其创建者的信息。另一方面，细粒度的权限常常具有相当大的业务逻辑相关性。对不同的业务逻辑，常常意味着完全不同的权限判定原则和策略。相比之下，粗粒度的权限更具通用性，将其实现为一个架构，更有重用价值；而将细粒度的权限判断实现为一个架构级别的东西就显得繁琐，而且不是那么的有必要，用定制的代码来实现就更简洁，更灵活。<br />
所以细粒度控制应该在底层解决，Resource在实例化的时候，必需指定Owner和GroupPrivilege在对Resource进行操作时也必然会确定约束类型：究竟是OwnerOK还是GroupOK还是AllOK。Group应和Role严格分离User和Group是多对多的关系，Group只用于对用户分类，不包含任何Role的意义；Role只授予User，而不是Group。如果用户需要还没有的多种Privilege的组合，必须新增Role。Privilege必须能够访问Resource，同时带User参数，这样权限控制就完备了。<br />
思想：<br />
权限系统的核心由以下三部分构成：1.创造权限，2.分配权限，3.使用权限，然后，系统各部分的主要参与者对照如下：1.创造权限 - Creator创造，2.分配权限 - Administrator 分配，3.使用权限 - User：<br />
1. Creator 创造 Privilege， Creator 在设计和实现系统时会划分，一个子系统或称为模块，应该有哪些权限。这里完成的是 Privilege 与 Resource 的对象声明，并没有真正将 Privilege 与具体Resource 实例联系在一起，形成Operator。<br />
2. Administrator 指定 Privilege 与 Resource Instance 的关联。在这一步， 权限真正与资源实例联系到了一起， 产生了Operator（Privilege Instance）。Administrator利用Operator这个基本元素，来创造他理想中的权限模型。如，创建角色，创建用户组，给用户组分配用户，将用户组与角色关联等等...这些操作都是由 Administrator 来完成的。<br />
3. User 使用 Administrator 分配给的权限去使用各个子系统。Administrator 是用户，在他的心目中有一个比较适合他管理和维护的权限模型。于是，程序员只要回答一个问题，就是什么权限可以访问什么资源，也就是前面说的 Operator。程序员提供 Operator 就意味着给系统穿上了盔甲。Administrator 就可以按照他的意愿来建立他所希望的权限框架可以自行增加，删除，管理Resource和Privilege之间关系。可以自行设定用户User和角色Role的对应关系。(如果将 Creator看作是 Basic 的发明者， Administrator 就是 Basic 的使用者，他可以做一些脚本式的编程) Operator是这个系统中最关键的部分，它是一个纽带，一个系在Programmer，Administrator，User之间的纽带。<br />
用一个功能模块来举例子。<br />
一．建立角色功能并做分配：<br />
1．如果现在要做一个员工管理的模块(即Resources)，这个模块有三个功能，分别是：增加，修改，删除。给这三个功能各自分配一个ID，这个ID叫做功能代号：<br />
Emp_addEmp，Emp_deleteEmp，Emp_updateEmp。<br />
2．建立一个角色(Role)，把上面的功能代码加到这个角色拥有的权限中，并保存到数据库中。角色包括系统管理员，测试人员等。<br />
3．建立一个员工的账号，并把一种或几种角色赋给这个员工。比如说这个员工既可以是公司管理人员，也可以是测试人员等。这样他登录到系统中将会只看到他拥有权限的那些模块。<br />
二．把身份信息加到Session中。<br />
登录时，先到数据库中查找是否存在这个员工，如果存在，再根据员工的sn查找员工的权限信息，把员工所有的权限信息都入到一个Hashmap中，比如就把上面的Emp_addEmp等放到这个Hashmap中。然后把Hashmap保存在一个UserInfoBean中。最后把这个UserInfoBean放到Session中，这样在整个程序的运行过程中，系统随时都可以取得这个用户的身份信息。<br />
三．根据用户的权限做出不同的显示。<br />
可以对比当前员工的权限和给这个菜单分配的&#8220;功能ID&#8221;判断当前用户是否有打开这个菜单的权限。例如：如果保存员工权限的Hashmap中没有这三个ID的任何一个，那这个菜单就不会显示，如果员工的Hashmap中有任何一个ID，那这个菜单都会显示。 <br />
对于一个新闻系统(Resouce)，假设它有这样的功能(Privilege)：查看，发布，删除，修改；假设对于删除，有"新闻系统管理者只能删除一月前发布的，而超级管理员可删除所有的这样的限制，这属于业务逻辑(Business logic)，而不属于用户权限范围。也就是说权限负责有没有删除的Permission，至于能删除哪些内容应该根据UserRole or UserGroup来决定(当然给UserRole or UserGroup分配权限时就应该包含上面两条业务逻辑)。<br />
一个用户可以拥有多种角色，但同一时刻用户只能用一种角色进入系统。角色的划分方法可以根据实际情况划分，按部门或机构进行划分的，至于角色拥有多少权限，这就看系统管理员赋给他多少的权限了。用户―角色―权限的关键是角色。用户登录时是以用户和角色两种属性进行登录的（因为一个用户可以拥有多种角色，但同一时刻只能扮演一种角色），根据角色得到用户的权限，登录后进行初始化。这其中的技巧是同一时刻某一用户只能用一种角色进行登录。<br />
针对不同的&#8220;角色&#8221;动态的建立不同的组，每个项目建立一个单独的Group，对于新的项目，建立新的 Group 即可。在权限判断部分，应在商业方法上予以控制。比如：不同用户的&#8220;操作能力&#8221;是不同的(粗粒度的控制应能满足要求)，不同用户的&#8220;可视区域&#8221;是不同的(体现在对被操作的对象的权限数据，是否允许当前用户访问，这需要对业务数据建模的时候考虑权限控制需要)。<br />
扩展性：<br />
有了用户/权限管理的基本框架，Who(User/Group)的概念是不会经常需要扩展的。变化的可能是系统中引入新的 What (新的Resource类型)或者新的How(新的操作方式)。那在三个基本概念中，仅在Permission上进行扩展是不够的。这样的设计中Permission实质上解决了How 的问题，即表示了&#8220;怎样&#8221;的操作。那么这个&#8220;怎样&#8221;是在哪一个层次上的定义呢？将Permission定义在&#8220;商业方法&#8221;级别比较合适。比如，发布、购买、取消。每一个商业方法可以意味着用户进行的一个&#8220;动作&#8221;。定义在商业逻辑的层次上，一方面保证了数据访问代码的&#8220;纯洁性&#8221;，另一方面在功能上也是&#8220;足够&#8221;的。也就是说，对更低层次，能自由的访问数据，对更高层次，也能比较精细的控制权限。<br />
确定了Permission定义的合适层次，更进一步，能够发现Permission实际上还隐含了What的概念。也就是说，对于What的How操作才会是一个完整的Operator。比如，&#8220;发布&#8221;操作，隐含了&#8220;信息&#8221;的&#8220;发布&#8221;概念，而对于&#8220;商品&#8221;而言发布操作是没有意义的。同样的，&#8220;购买&#8221;操作，隐含了&#8220;商品&#8221;的&#8220;购买&#8221;概念。这里的绑定还体现在大量通用的同名的操作上，比如，需要区分&#8220;商品的删除&#8221;与&#8220;信息的删除&#8221;这两个同名为&#8220;删除&#8221;的不同操作。<br />
提供权限系统的扩展能力是在Operator (Resource + Permission)的概念上进行扩展。Proxy 模式是一个非常合适的实现方式。实现大致如下：在业务逻辑层(EJB Session Facade [Stateful SessionBean]中)，取得该商业方法的Methodname，再根据Classname和 Methodname 检索Operator 数据，然后依据这个Operator信息和Stateful中保存的User信息判断当前用户是否具备该方法的操作权限。<br />
应用在 <a title="??" href="http://www.jdon.com/jivejdon/key/ejb" target="_blank"><strong>EJB</strong></a> 模式下，可以定义一个很明确的 Business层次，而一个Business 可能意味着不同的视图，当多个视图都对应于一个业务逻辑的时候，比如，Swing Client以及 Jsp Client 访问的是同一个 <a title="??" href="http://www.jdon.com/jivejdon/key/ejb" target="_blank"><strong>EJB</strong></a> 实现的 Business。在 Business 层上应用权限较能提供集中的控制能力。实际上，如果权限系统提供了查询能力，那么会发现，在视图层次已经可以不去理解权限，它只需要根据查询结果控制界面就可以了。<br />
灵活性：<br />
Group和Role，只是一种辅助实现的手段，不是必需的。如果系统的Role很多，逐个授权违背了&#8220;简单，方便&#8221;的目的，那就引入Group，将权限相同的Role组成一个Group进行集中授权。Role也一样，是某一类Operator的集合，是为了简化针对多个Operator的操作。<br />
Role把具体的用户和组从权限中解放出来。一个用户可以承担不同的角色，从而实现授权的灵活性。当然，Group也可以实现类似的功能。但实际业务中，Group划分多以行政组织结构或业务功能划分；如果为了权限管理强行将一个用户加入不同的组，会导致管理的复杂性。<br />
Domain的应用。为了授权更灵活，可以将Where或者Scope抽象出来，称之为Domain，真正的授权是在Domain的范围内进行，具体的Resource将分属于不同的Domain。比如：一个新闻机构有国内与国外两大分支，两大分支内又都有不同的资源（体育类、生活类、时事政治类）。假如所有国内新闻的权限规则都是一样的，所有国外新闻的权限规则也相同。则可以建立两个域，分别授权，然后只要将各类新闻与不同的域关联，受域上的权限控制，从而使之简化。<br />
权限系统还应该考虑将功能性的授权与资源性的授权分开。很多系统都只有对系统中的数据（资源）的维护有权限控制，但没有对系统功能的权限控制。<br />
权限系统最好是可以分层管理而不是集中管理。大多客户希望不同的部门能且仅能管理其部门内部的事务，而不是什么都需要一个集中的Administrator或Administrators组来管理。虽然你可以将不同部门的人都加入Administrators组，但他们的权限过大，可以管理整个系统资源而不是该部门资源。<br />
正向授权与负向授权：正向授权在开始时假定主体没有任何权限，然后根据需要授予权限，适合于权限要求严格的系统。负向授权在开始时假定主体有所有权限，然后将某些特殊权限收回。<br />
权限计算策略：系统中User，Group，Role都可以授权，权限可以有正负向之分，在计算用户的净权限时定义一套策略。<br />
系统中应该有一个集中管理权限的AccessService，负责权限的维护（业务管理员、安全管理模块）与使用（最终用户、各功能模块），该AccessService在实现时要同时考虑一般权限与特殊权限。虽然在具体实现上可以有很多，比如用Proxy模式，但应该使这些Proxy依赖于AccessService。各模块功能中调用AccessService来检查是否有相应的权限。所以说，权限管理不是安全管理模块自己一个人的事情，而是与系统各功能模块都有关系。每个功能模块的开发人员都应该熟悉安全管理模块，当然，也要从业务上熟悉本模块的安全规则。<br />
技术实现：<br />
1．表单式认证，这是常用的，但用户到达一个不被授权访问的资源时，Web容器就发<br />
出一个html页面，要求输入用户名和密码。 <br />
2．一个基于Servlet Sign in/Sign out来集中处理所有的Request，缺点是必须由应用程序自己来处理。<br />
3．用Filter防止用户访问一些未被授权的资源，Filter会截取所有Request/Response，<br />
然后放置一个验证通过的标识在用户的Session中，然后Filter每次依靠这个标识来决定是否放行Response。<br />
这个模式分为：<br />
Gatekeeper ：采取Filter或统一Servlet的方式。<br />
Authenticator： 在Web中使用JAAS自己来实现。<br />
用户资格存储LDAP或数据库：<br />
1. Gatekeeper拦截检查每个到达受保护的资源。首先检查这个用户是否有已经创建<br />
好的Login Session，如果没有，Gatekeeper 检查是否有一个全局的和Authenticator相关的session？<br />
2. 如果没有全局的session，这个用户被导向到Authenticator的Sign-on 页面，<br />
要求提供用户名和密码。<br />
3. Authenticator接受用户名和密码，通过用户的资格系统验证用户。<br />
4. 如果验证成功，Authenticator将创建一个全局Login session，并且导向Gatekeeper<br />
来为这个用户在他的web应用中创建一个Login Session。<br />
5. Authenticator和Gatekeepers联合分享Cookie，或者使用Tokens在Query字符里。
<img src ="http://www.cnblogs.com/Yosland/aggbug/1204441.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43772/" target="_blank">[新闻]Digg创始人：不再考虑出售公司 将适机并购</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>flash 播放技术：jump to any part of the video </title><link>http://www.cnblogs.com/Yosland/archive/2008/04/08/1141214.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Mon, 07 Apr 2008 16:09:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2008/04/08/1141214.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/1141214.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2008/04/08/1141214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/1141214.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/1141214.html</trackback:ping><description><![CDATA[1,use FMS OR RED5<br />
2, here is a post about this. <font face="Verdana">http://www.jeroenwijering.com/?thread=7783#msg43782</font><br />
3, and this post is how do I? <font face="Verdana">http://www.flashcomguru.com/index.cfm/2005/11/2/Streaming-flv-video-via-PHP-take-two</font><br />
4,this is an other way to do . <font face="Verdana">http://www.flashcomguru.com/index.cfm/2005/11/4/Short-video-Using-flvmdi-to-inject-metadata-into-flvs</font><br />
5,FLV MetaData Injector Tool : <font face="Verdana">http://www.buraks.com/flvmdi/</font><br />
6, some about infomation :<font face="Verdana">http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx<br />
<font face="Verdana">http://www.jeroenwijering.com/?search=red5<br />
7, and some introdution about YouTude:&nbsp;<br />
&nbsp;
<p><font face="Verdana">Flash Video (FLV) files cannot be streamed from the middle directly. For that you need to server the videos using RTMP using Adobe stream server or spend some time hacking the open-source red5. FLV files are sent via simple HTTP just like any other webpage or image.</font></p>
<p><font face="Verdana">Google and YouTube let you jump to a specific part of the video by sending a new dynamic FLV file over HTTP that starts very close to the time you wish to jump to. In other words, every time you click on the trackbar and the FLV hasn't loaded that segment yet, it loads a whole new partial FLV starting at that point. The original full FLV has keyframe(time)-&gt;byte mapping stored so the SWF player can figure out which position in time means which byte of the FLV to start streaming from.</font></p>
<p><font face="Verdana"></font>&nbsp;8,some open source Player :&nbsp;<br />
&nbsp;<font face="Verdana"><a href="http://api.blogs.com/flow/">http://api.blogs.com/flow/</a><br />
<font face="Verdana">http://en.wikipedia.org/wiki/Flash_Video</font><br />
</font></p>
</font></font>
<img src ="http://www.cnblogs.com/Yosland/aggbug/1141214.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43771/" target="_blank">[新闻]福布斯:中国经济增长减速 网游行业从中获益</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>SQL　SERVER的排序规则 利用排序规则特点计算汉字笔划和取得拼音首字母 (转)</title><link>http://www.cnblogs.com/Yosland/archive/2007/11/26/972597.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Mon, 26 Nov 2007 04:22:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/11/26/972597.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/972597.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/11/26/972597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/972597.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/972597.html</trackback:ping><description><![CDATA[SQL　SERVER的排序规则平时使用不是很多，也许不少初学者还比较陌生，但有 <br />
一个错误大家应是经常碰到: SQL SERVER数据库，在跨库多表连接查询时，若两数据 <br />
库默认字符集不同，系统就会返回这样的错误：
<p>&#8220;无法解决 equal to 操作的排序规则冲突。&#8221; </p>
<p>一.错误分析： <br />
这个错误是因为排序规则不一致造成的，我们做个测试，比如： <br />
create table #t1( <br />
name varchar(20) collate Albanian_CI_AI_WS, <br />
value int) </p>
<p>create table #t2( <br />
name varchar(20) collate Chinese_PRC_CI_AI_WS, <br />
value int ) </p>
<p>表建好后，执行连接查询： </p>
<p>select * from #t1 A inner join #t2 B on A.name=B.name </p>
<p>这样，错误就出现了： </p>
<p>服务器: 消息 446，级别 16，状态 9，行 1 <br />
无法解决 equal to 操作的排序规则冲突。 <br />
要排除这个错误，最简单方法是，表连接时指定它的排序规则，这样错误就 <br />
不再出现了。语句这样写： </p>
<p>select * <br />
from #t1 A inner join #t2 B <br />
on A.name=B.name collate Chinese_PRC_CI_AI_WS </p>
<p><br />
二.排序规则简介： </p>
<p>什么叫排序规则呢？MS是这样描述的："在 Microsoft SQL Server 2000 中， <br />
字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存 <br />
储和比较字符所使用的规则。" <br />
在查询分析器内执行下面语句，可以得到SQL　SERVER支持的所有排序规则。 </p>
<p>　　　　select * from ::fn_helpcollations() </p>
<p>排序规则名称由两部份构成，前半部份是指本排序规则所支持的字符集。 <br />
如： <br />
Chinese_PRC_CS_AI_WS <br />
前半部份：指UNICODE字符集，Chinese_PRC_指针对大陆简体字UNICODE的排序规则。 <br />
排序规则的后半部份即后缀 含义： <br />
_BIN 二进制排序 <br />
_CI(CS) 是否区分大小写，CI不区分，CS区分 <br />
_AI(AS) 是否区分重音，AI不区分，AS区分　　　 <br />
_KI(KS) 是否区分假名类型,KI不区分，KS区分　 <br />
_WI(WS) 是否区分宽度 WI不区分，WS区分　 </p>
<p>区分大小写:如果想让比较将大写字母和小写字母视为不等，请选择该选项。 <br />
区分重音:如果想让比较将重音和非重音字母视为不等，请选择该选项。如果选择该选项， <br />
比较还将重音不同的字母视为不等。 <br />
区分假名:如果想让比较将片假名和平假名日语音节视为不等，请选择该选项。 <br />
区分宽度:如果想让比较将半角字符和全角字符视为不等，请选择该选项 </p>
<p><br />
三.排序规则的应用： <br />
SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则，但它的应用往往 <br />
被开发人员所忽略。其实它在实践中大有用处。 </p>
<p>　　例1:让表NAME列的内容按拼音排序： </p>
<p>create table #t(id int,name varchar(20)) <br />
insert #t select 1,'中' <br />
union all select 2,'国' <br />
union all select 3,'人' <br />
union all select 4,'阿' </p>
<p>select * from #t order by name collate Chinese_PRC_CS_AS_KS_WS <br />
drop table #t <br />
/*结果： <br />
id name <br />
----------- -------------------- <br />
4 阿 <br />
2 国 <br />
3 人 <br />
1 中 <br />
*/ </p>
<p>　　例2：让表NAME列的内容按姓氏笔划排序： </p>
<p>create table #t(id int,name varchar(20)) </p>
<p>insert #t select 1,'三' <br />
union all select 2,'乙' <br />
union all select 3,'二' <br />
union all select 4,'一' <br />
union all select 5,'十' <br />
select * from #t order by name collate Chinese_PRC_Stroke_CS_AS_KS_WS <br />
drop table #t <br />
/*结果： <br />
id name <br />
----------- -------------------- <br />
4 一 <br />
2 乙 <br />
3 二 <br />
5 十 <br />
1 三 <br />
*/ </p>
<p>四.在实践中排序规则应用的扩展 <br />
SQL SERVER汉字排序规则可以按拼音、笔划等排序，那么我们如何利用这种功能 <br />
来处理汉字的一些难题呢？我现在举个例子： </p>
<p>　　　　　　　　　　用排序规则的特性计算汉字笔划 </p>
<p>　　要计算汉字笔划，我们得先做准备工作，我们知道，WINDOWS多国汉字，UNICODE目前 <br />
收录汉字共20902个。简体GBK码汉字UNICODE值从19968开始。 <br />
首先，我们先用SQLSERVER方法得到所有汉字，不用字典，我们简单利用SQL语句就 <br />
可以得到： </p>
<p>select top 20902 code=identity(int,19968,1) into #t from syscolumns a,syscolumns b </p>
<p>再用以下语句，我们就得到所有汉字，它是按UNICODE值排序的： </p>
<p>　　select code,nchar(code) as CNWord from #t </p>
<p>　　然后，我们用SELECT语句，让它按笔划排序。 </p>
<p>select code,nchar(code) as CNWord <br />
from #t <br />
order by nchar(code) collate Chinese_PRC_Stroke_CS_AS_KS_WS,code </p>
<p>结果： <br />
code CNWord <br />
----------- ------ <br />
19968 一 <br />
20008 丨 <br />
20022 丶 <br />
20031 丿 <br />
20032 乀 <br />
20033 乁 <br />
20057 乙 <br />
20058 乚 <br />
20059 乛 <br />
20101 亅 <br />
19969 丁 <br />
.......... </p>
<p>　 从上面的结果，我们可以清楚的看到，一笔的汉字，code是从19968到20101，从小到大排，但到 <br />
了二笔汉字的第一个字&#8220;丁&#8221;，CODE为19969，就不按顺序而重新开始了。有了这结果，我们就可以轻 <br />
松的用SQL语句得到每种笔划汉字归类的第一个或最后一个汉字。 <br />
下面用语句得到最后一个汉字： </p>
<p>create table #t1(id int identity,code int,cnword nvarchar(2)) </p>
<p>insert #t1(code,cnword) <br />
select code,nchar(code) as CNWord from #t <br />
order by nchar(code) collate Chinese_PRC_Stroke_CS_AS_KS_WS,code </p>
<p><br />
select A.cnword <br />
from #t1 A <br />
left join #t1 B on A.id=B.id-1 and A.code&lt;B.code <br />
where B.code is null <br />
order by A.id </p>
<p>得到36个汉字，每个汉字都是每种笔划数按Chinese_PRC_Stroke_CS_AS_KS_WS排序规则排序后的 <br />
最后一个汉字： </p>
<p>亅阝马风龙齐龟齿鸩龀龛龂龆龈龊龍龠龎龐龑龡龢龝齹龣龥齈龞麷鸞麣龖龗齾齉龘 </p>
<p>　　上面可以看出：&#8220;亅&#8221;是所有一笔汉字排序后的最后一个字，&#8220;阝&#8221;是所有二笔汉字排序后的最后 <br />
一个字......等等。 <br />
但同时也发现，从第33个汉字&#8220;龗(33笔)&#8221;后面的笔划有些乱，不正确。但没关系，比&#8220;龗&#8221;笔划 <br />
多的只有四个汉字，我们手工加上：齾35笔，齉36笔，靐39笔，龘64笔 </p>
<p>建汉字笔划表（TAB_HZBH）： <br />
create table tab_hzbh(id int identity,cnword nchar(1)) <br />
--先插入前33个汉字 <br />
insert tab_hzbh <br />
select top 33 A.cnword <br />
from #t1 A <br />
left join #t1 B on A.id=B.id-1 and <br />
----------------- </p>
<img src ="http://www.cnblogs.com/Yosland/aggbug/972597.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43770/" target="_blank">[新闻]苹果正调查MacBook笔记本“黑屏死机”故障</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>用FlashAS实现画图的详细讲解( 转)</title><link>http://www.cnblogs.com/Yosland/archive/2007/11/23/970392.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Fri, 23 Nov 2007 12:05:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/11/23/970392.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/970392.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/11/23/970392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/970392.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/970392.html</trackback:ping><description><![CDATA[摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->用ActionScript进行控制，可以随机画出各种图形，该教程为系列讲座，提供了许多很有用的AS代码&#8230;&#8230;使用方法：把代码拷到帧中就可看到效果用鼠标任意画线效果：可按住鼠标任意画线&nbsp;&nbsp;<a href='http://www.cnblogs.com/Yosland/archive/2007/11/23/970392.html'>阅读全文</a><img src ="http://www.cnblogs.com/Yosland/aggbug/970392.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43769/" target="_blank">[新闻]007最牛电脑探秘：应用界面来自中国(组图)</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>flash 坐标系统及其变换常用函数</title><link>http://www.cnblogs.com/Yosland/archive/2007/11/22/967971.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Wed, 21 Nov 2007 17:23:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/11/22/967971.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/967971.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/11/22/967971.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/967971.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/967971.html</trackback:ping><description><![CDATA[<font color="#ff9900">= myMovieClip.getBounds(mc)</font> <br />
获取myMovieClip在以mc的坐标系为基准的相对坐标范围（能包罗myMovieClip <br />
的最小正矩形）。返回值为一个对象，包含xMin，xMax，yMin，yMax四个成员， <br />
分别指定其坐标界线。 <br />
<br />
<font color="#ff9900">myMovieClip.globalToLocal(point)</font> <br />
将全局坐标point转化为以myMovieClip的坐标系为基准的相对坐标。point为 <br />
一个对象，具有成员变量x和y。 <br />
<br />
<font color="#ff9900">myMovieClip.localToGlobal(point)</font> <br />
将以myMovieClip的坐标系为基准的相对坐标point转化为全局坐标。point为 <br />
一个对象，具有成员变量x和y。 <br />
<br />
<font color="#ff9900">= myMovieClip.hitTest(x, y, shape_flag) </font><br />
返
回全局坐标（x,y）是否在myMovieClip内。当shape_flag为true时表示只有当（x,y）与myMovieClip的可视形状接触
时才返回true。当shape_flag为false（默认）时表示只要（x,y）进入到myMovieClip以绝对坐标系为基准的坐标范围内，就返
回true。 <br />
<br />
<font color="#ff9900">= myMovieClip.hitTest(mc)</font> <br />
返回myMovieClip以绝对坐标系为基准的坐标范围是否与mc以绝对坐标系为基 <br />
准的坐标范围相交。
<img src ="http://www.cnblogs.com/Yosland/aggbug/967971.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43768/" target="_blank">[新闻]新浪网遭攻击瘫痪500分钟 被迫答应黑客要求</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>人们常说女人是水做的。</title><link>http://www.cnblogs.com/Yosland/archive/2007/04/22/722737.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Sun, 22 Apr 2007 03:21:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/04/22/722737.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/722737.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/04/22/722737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/722737.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/722737.html</trackback:ping><description><![CDATA[<br>人们常说女人是水做的。柔软中见出张力，温存里透射灵犀。蒸为云、化为雾、凝为雨、结为冰，千万种美的幻化，都来自本性的纯一。掬水月在手，弄花香满衣。
<img src ="http://www.cnblogs.com/Yosland/aggbug/722737.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43767/" target="_blank">[新闻]联发科称“死机短信”不会伤害手机硬件</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>计划学习数据结构，找了一些资料，接下来慢慢学习。。。</title><link>http://www.cnblogs.com/Yosland/archive/2007/04/17/717225.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Tue, 17 Apr 2007 11:27:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/04/17/717225.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/717225.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/04/17/717225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/717225.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/717225.html</trackback:ping><description><![CDATA[<p>计划学习数据结构，找了一些资料，接下来慢慢学习。。。</p>
<ol>
    <li><a href="http://www.cnblogs.com/wayfarer/archive/2004/04/08/5526.aspx">考察数据结构</a>-----Bruce Zhang;
    <li><a href="http://www.cnblogs.com/wayfarer/archive/2004/04/08/5526.aspx">数据结构</a>------wssmax;
    <li><a href="http://www.cnblogs.com/xuanfeng/category/71727.html">数据结构（C#）</a>------旋风；
    <li><a href="http://www.cnblogs.com/zhenyulu/category/14888.html">华容道与数据结构</a>-------吕震宇(First we try,then we trust)；
    <li><a href="http://www.cnblogs.com/inrie/archive/2005/01/18/93797.aspx">(C#算法与数据结构）约瑟夫环问题</a>-------洪晓军（Wake up every with a feeling of passsion for the difference technology will make in our life); </li>
</ol>
<img src ="http://www.cnblogs.com/Yosland/aggbug/717225.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43766/" target="_blank">[新闻]金融危机引爆Web2.0变革：社区网站价值被高估</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>今天发现了一个很好用的,可以试用一个月的免费asp.net2.0空间!!真是太高兴了.感谢提供者;</title><link>http://www.cnblogs.com/Yosland/archive/2007/03/20/681530.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Tue, 20 Mar 2007 09:47:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/03/20/681530.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/681530.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/03/20/681530.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/681530.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/681530.html</trackback:ping><description><![CDATA[此站网址为:<br><a href="http://www.vwdhosting.net/default.aspx">http://www.vwdhosting.net/default.aspx</a><br>效果如下:这是我做的测试程序:还加上了asp.net ajax V1.0;网址是:<a href="http://oulvhai-1.at.vwdhosting.net/">http://oulvhai-1.at.vwdhosting.net/<br></a></a>此网站支持sqlExpress,还可以用sql Management studio工具连到自己建立的数据库上:如图:<br><br><img src="http://www.cnblogs.com/images/cnblogs_com/yosland/Snap3.jpg" border=0><br>感觉真不错!! 
<img src ="http://www.cnblogs.com/Yosland/aggbug/681530.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43765/" target="_blank">[新闻]MySpace称目前是收购创业公司良机</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>asp.net(C#)放缩图像的代码(源自asp.netStartKit中classKit的作者)</title><link>http://www.cnblogs.com/Yosland/archive/2007/03/16/677117.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Fri, 16 Mar 2007 05:12:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/03/16/677117.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/677117.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/03/16/677117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/677117.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/677117.html</trackback:ping><description><![CDATA[摘要: asp.net(C#)放缩图像的代码(源自asp.netStartKit中classKit的作者)&nbsp;&nbsp;<a href='http://www.cnblogs.com/Yosland/archive/2007/03/16/677117.html'>阅读全文</a><img src ="http://www.cnblogs.com/Yosland/aggbug/677117.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43764/" target="_blank">[新闻]诺基亚推出触摸屏手机N97</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>关于CSS中的滑动门技术,asp.net2.0中的WebPart和MemberShip</title><link>http://www.cnblogs.com/Yosland/archive/2007/03/13/672721.html</link><dc:creator>Otis</dc:creator><author>Otis</author><pubDate>Tue, 13 Mar 2007 01:50:00 GMT</pubDate><guid>http://www.cnblogs.com/Yosland/archive/2007/03/13/672721.html</guid><wfw:comment>http://www.cnblogs.com/Yosland/comments/672721.html</wfw:comment><comments>http://www.cnblogs.com/Yosland/archive/2007/03/13/672721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Yosland/comments/commentRss/672721.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Yosland/services/trackbacks/672721.html</trackback:ping><description><![CDATA[<p>前天花了很久一段时间学习了CSS中的滑动门技术,因为这是非常常用的东东.关键如下:<br>1.XHTML:<br>&lt;div id="nav"&gt;<br>&lt;ul&gt;<br>&nbsp; &lt;li id="current"&gt;&lt;a href="#"&gt;主页&lt;/a&gt;&lt;/li&gt;<br>&nbsp; &lt;li&gt;&lt;a href="#"&gt;工作查询与回顾&lt;/a&gt;&lt;/li&gt;<br>&nbsp; &lt;li&gt;&lt;a href="#"&gt;管理工作类别&lt;/a&gt; &lt;/li&gt;<br>&lt;/ul&gt;<br>&lt;/div&gt;<br>2.#nav {<br>&nbsp;height:100%;<br>&nbsp;margin: 0;<br>&nbsp;padding: 0;<br>&nbsp;background: #ffffcc url(../image/cssImg/nav_bg.gif) &nbsp;repeat-x left bottom;<br>}<br>#nav ul {<br>&nbsp;padding: 10px 10px 0px;<br>&nbsp;margin: 0;<br>&nbsp;list-style: none;<br>&nbsp;line-height: normal;<br>}<br><br>#nav li {<br>&nbsp;margin: 0;<br>&nbsp;padding: 0px 0px 0px 14px;<br>&nbsp;float: left;<br>&nbsp;background: url(../image/cssImg/a_left_non.gif) no-repeat left top;<br>&nbsp;<br>}<br>#nav a {<br>&nbsp;display: block;<br>&nbsp;background-image: url(../image/cssImg/a_right_non.gif) no-repeat right top;<br>&nbsp;padding: 5px 18px 4px 4px;<br>&nbsp;margin: 0px;<br>&nbsp;font-weight: bold;<br>&nbsp;color: #FFFFFF;<br>&nbsp;font-size: 14px;<br>}<br>#nav #current {<br>&nbsp;background-image: url(../image/cssImg/a_left_cur.gif) no-repeat left top;<br>}<br><br>#current a {<br>&nbsp;background-image: url(../image/cssImg/a_right_cur.gif) no-repeat right top;<br>&nbsp;padding-bottom: 5px;<br>}<br>&nbsp; </p>
<p><span>Web Part</span><span>中</span><span>:</span></p>
<p><span>CatalogZone</span><span>里只能添加</span><span>:DeclarativeCatalogPart,PageCatalogPart,importCatalogPart;</span></p>
<p><span>一般来说</span><span>:DeclarativeCatalogPart</span><span>和</span><span>PageCatalogPart</span><span>不推荐共存于同一个</span><span>CatalogZone</span><span>中</span><span>,</span><span>一般如果页面上的</span><span>Web Part Zone</span><span>一开始能全部加载出来时</span><span>.CatalogZone</span><span>中就用</span><span>PageCatalogPart;</span></p>
<p><span>如果页面上的</span><span>Web Part Zone</span><span>一开始不能全部加载到页面中</span><span>,</span><span>而是要用户自己添加自己所需要的模块时</span><span>CatalogZone</span><span>中就用</span><span>DeclarativeCatalogPart;<br>关于MemberShip:<br>扩展MemberShip中的用户信息的方法，苏鹏老师介绍了二种，一种是用Profile,另一种是用扩展表．<br>在Access中加入asp.net2.0中的成员角色管理的方式：下载MS的<a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl24',this);" href="http://download.microsoft.com/download/5/5/b/55bc291f-4316-4fd7-9269-dbf9edbaada8/sampleaccessproviders.vsi"><strong>Sample Access Providers</strong></a>.网址为：<br><a href="http://msdn2.microsoft.com/en-us/asp.net/aa336558.aspx">http://msdn2.microsoft.com/en-us/asp.net/aa336558.aspx</a></span></p>
<img src ="http://www.cnblogs.com/Yosland/aggbug/672721.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43763/" target="_blank">[新闻]消息称AOL前CEO米勒欲筹资收购雅虎</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>