第四章 成员和用户配置

今天天气闷,办公室的空调在转着,沉闷的空气里尽听到空调机发出的声响,而冷气却远远不符这动静,该再下场雨了,但天总不见黑沉下来,最近一段时间的学习总是想法好执行效率低,好的想法总变成空想。看了第三章,对设计三层架构的精妙有了初步认识,想跳过第四章而去学习第五章对三层架构(数据层、逻辑层、界面层)的具体实现,一头撞进去一头雾水地出来,想当然的结局就是再次证明了自己的愚蠢,在浮沙上想盖高楼,对于菜鸟级的初学者我来说,各个控件、组件似乎像积木一样拼装起来,看似简单,但却总是我先前所做的却总是复制、黏贴,常常连一个常用控件都不熟,更别提背后的机理。就是连之前的第三章我也是看得一知半解。我回头看了更为基础的教程《圣殿祭司的ASP.NET2.0开发详解》,写得很棒的中文计算机书和《Essential ASP.Net 2.0 中文版》初步了解了Gridview控件的使用和数据绑定,以及ADO.net的入门知识(ADO.net将以后另花时间看其它更专门的书),以及方便的SqlDataSource(使用存储过程、使用参数、声明数据绑定,IDataSource接口),还有层次数据库ObjectDataSource通过绑定中间层数据对象(绑定到对象)去操作自定义的数据库层(三层架构就是利用ObjectDataSource来实现的),以及web.sitemap,还了解了.net下的状态管理,跨页传递、Wizard控件、MultiView和View控件另一种隐藏显示窗格,更引人入胜的事——配置文件,也就是第四章的内容。
         配置文件,为定义数据库支持的用户配置信息提供了一种简单的途径,提供程序(Provider)为配置文件项的属性数据存储到对应的数据库中,序列化、持久化。在Asp.net2.0中,默认的配置文件提供程序(可以是默认的、自定义的还可以是第三方的,第五章就是),成员系统所用的提供程序默认一般是Machine.config.default中,我们可以在web.config中自定义提供程序进行制定和配置,默认的配置文件提供程序就配置文件数据存储在一个本地的Sql2005Express,而更改为aspnet_regsql -A all -C server=.;database=...,更换用于存储配置文件的数据库。(默认的SqlMembershipPrvide,理解了profile的神奇以及背后的一些原理)。其它实现了自定义控件,Helper(membershipUser)类,自定义Basepage,TextBox高亮效果(hightlight)。
    书中内容笔记:
       大多数网站都需要一个成员系统,网站中有一些管理页面就不能允许普通用户访问。管理部分本身可以是一个完整的系统,也可以使一些简单的页面。认证(authentica)与授权(authorization)方式,ASP.net2.0提供了功能完整的成员资料系统——本章学习的主要内容。(甚至可以不写代码就能实现用户注册、管理页面保护,以及用户配置管理等功能,主要的API类是Membership和MembershipUser类)。
       提供程序模型设计模式——ASP.net2.0中广泛采用了该模式:将“数据存储”表示保存数据的物理方法——通常是指将数据保存到数据库中或者活动目录中,而.NET把实际的数据存储方法从数据处理类中抽象出来。提供程序类(provider class)中保存了其他数据处理类处理后的数据(Web.config里进行对提供程序相关指定和配置,machine.config.default中有默认的<membership>可以参考),基本上可以认为Membership类是一个业务层类(该层只处理数据),而Provider类是一个数据获取类,提供了数据持久化的信息。如果使用SQL2000或SQL2005完全版则需要通过命令行中运行aspnet_regsql工具来手工创建这些表,允许用户选择指定服务器上的数据库,然后配置新的数据库连接字段改写到提供程序的配置(在web.config内),提供程序的操作就会在用户定义的数据库上实现。
    图形登录控件CreateUserWizard、Login、ChangePassword、PasswordRecovery、LoginStatus、LoginName及LoginView。
    角色管理器:在web.congfig中启用<roleManager>,该元素启用了角色管理,并且对一些选项进行配置。另外除非指定了其他提供程序,否则系统会使用默认的提供程序,包含(App_Data文件夹中的ASPNETDB文件),如果使用其他数据库,则需要在<roleManager>中注册一个新的提供程序,并且选择该提供程序为roleManager中defaultProvider属性的默认值。access control List,ATL访问控制列表,想让不同的文件夹有不同的访问控制,那么可以在每个文件夹下的web.config中添加不同的<authorization>,也可以在根目录的web.config文件中通过使用不同的<location>来添加所有的访问控制列表。
   建立和使用用户资料:
       ASP.NET2.0提供了内置的用户资料管理功能,<profile>定义属性名称、类型、默认值。ProfileCommon类,从业务类中访问Profile属性,ProfileCommon profile=HttpContext.Current.Profile as ProfileCommon; 访问非当前用户资料 ProfileCommon profile=Profile.GetProfile("UserName");添加对匿名用户支持,<anonymousIdentification enabled="true"/>匿名账户能够使用的属性,可以通过将属性中的allowAnonymous设为true来改变。
    网站管理工具,ASP.NET Configuration.
    阅读web.config中的设置就能了解上面许多信息,特别是提供程序模型。说到这里,第三章的内容也得再看一遍,以前也没能理解清楚,记下清楚的和未知的让后面的阅读更加方便,重复的错误避免再犯,虽然经常还是干傻事。

转载于:https://www.cnblogs.com/toyman_1298/archive/2011/01/06/1927009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值