
2008年9月9日
posted @ 2008-09-09 18:17 啊凡 阅读(37) 评论(0)
编辑
一、人之所以痛苦,在于追求错误的东西。
二、与其说是别人让你痛苦,不如说自己的修养不够。
三、如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下。
四、好好的管教你自己,不要管别人。
五、不宽恕众生,不原谅众生,是苦了你自己。
六、别说别人可怜,自己更可怜,自己修行又如何?自己又懂得人生多少?
七、学佛是对自己的良心交待,不是做给别人看的。
八、福报不够的人,就会常常听到是非;福报够的人,从来就没听到过是非。
九、修行是点滴的工夫。
十、在顺境中修行,永远不能成佛。
十一、你永远要感谢给你逆境的众生。
十二、你随时要认命,因为你是人。
十三、你永远要宽恕众生,不论他有多坏,甚至他伤害过你,你一定要放下,才能得到真正的快乐。
十四、这个世界本来就是痛苦的,没有例外的。
十五、当你快乐时,你要想,这快乐不是永恒的。当你痛苦时你要想这痛苦也不是永恒的。
十六、认识自己,降伏自己,改变自己,才能改变别人。
十七、今日的执著,会造成明日的后悔。
十八、你可以拥有爱,但不要执著,因为分离是必然的。
十九、不要浪费你的生命在你一定会后悔的地方上。
二十、你什么时候放下,什么时候就没有烦
二一、内心没有分别心,就是真正的苦行。
二二、学佛第一个观念,永远不去看众生的过错。你看众生的过错,你永远污染你自己,你根本不可能修行。
二三、你每天若看见众生的过失和是非,你就要赶快去忏悔,这就是修行
二四、业障深重的人,一天到晚都在看别人的过失与缺点,真正修行的人,从不会去看别人的过失与缺点。
二五、每一种创伤,都是一种成熟。
二六、当你知道迷惑时,并不可怜, 当你不知道迷惑时,才是最可怜的。
二七、狂妄的人有救,自卑的人没有救。
二八、你不要一直不满人家,你应该一直检讨自己才对。不满人家,是苦了你自己。
二九、一切恶法,本是虚妄的,你不要太自卑你自己。一切善法,也是虚妄的,你也不要太狂妄你自己。
三十、当你烦恼的时候,你就要告诉你自己,这一切都是假的,你烦恼什么?
三一、当你未学佛的时候,你看什么都不顺。当你学佛以后,你要看什么都很顺。
三二、你要包容那些意见跟你不同的人,这样子日子比较好过。你要是一直想改变他,那样子你会很痛苦。要学学怎样忍受他才是。你要学学怎样包容他才是。
三三、承认自己的伟大,就是认同自己的愚疑。
三四、修行就是修正自己错误的观念。
三五、医生难医命终之人,佛陀难渡无缘的众生。
三六、一个人如果不能从内心去原谅别人,那他就永远不会心安理得。
三七、心中装满着自己的看法与想法的人,永远听不见别人的心声。
三八、毁灭人只要一句话,培植一个人却要千句话,请你多口下留情。
三九、当你劝告别人时,若不顾及别人的自尊心,那么再好的言语都没有用的。
四十、不要在你的智慧中夹杂着傲慢。不要使你的谦虚心缺乏智慧 。
四一、根本不必回头去看咒骂你的人是谁?如果有一条疯狗咬你一口,难道你也要趴下去反咬他一口吗?
四二、忌妒别人,不会给自己增加任何的好处。忌妒别人,也不可能减少别人的成就。
四三、永远不要浪费你的一分一秒,去想任何你不喜欢的人。
四四、多少人要离开这个世间时,都会说出同一句话,这世界真是无奈与凄凉啊!
四五、恋爱不是慈善事业,不能随便施舍的。感情是没有公式,没有原则,没有道理可循的。可是人们至死都还在执著与追求。
四六、请你用慈悲心和温和的态度,把你的不满与委屈说出来,别人就容易接受。
四七、创造机会的人是勇者。等待机会的人是愚者。
四八、能说不能行,不是真智慧。
四九、多用心去倾听别人怎么说,不要急着表达你自己的看法。
五十、同样的瓶子,你为什么要装毒药呢?同样的心理,你为什么要充满着烦恼呢?
五一、得不到的东西,我们会一直以为他是美好的,那是因为你对他了解太少,没有时间与他相处在一起。当有一天,你深入了解后,你会发现原不是你想像中的那么美好。
五二、这个世间只有圆滑,没有圆满的。
五三、修行要有耐性,要能甘于淡泊,乐于寂寞。
五四、活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚。
五五、多一分心力去注意别人,就少一分心力反省自己,你懂吗?
五六、眼睛不要老是睁得那么大,我且问你,百年以后,那一样是你的。
五七、欲知世上刀兵劫,但听屠门夜半声。不要光埋怨自己多病,灾祸横生,多看看横死在你刀下的众生又有多少?
五八、憎恨别人对自己是一种很大的损失。
五九、每一个人都拥有生命,但并非每个人都懂得生命,乃至于珍惜生命。不了解生命的人,生命对他来说,是一种惩罚。
六十、自以为拥有财富的人,其实是被财富所拥有。
posted @ 2008-09-09 17:48 啊凡 阅读(83) 评论(3)
编辑
转摘于:http://blog.csdn.net/lne818/archive/2006/09/03/1173743.aspx
asp.net 2.0 用户管理功能结构
摘要:在.NET 2.0中,引入了Provider模式后,大大了提高了框架本身的可扩展性。以Membership,Roles,Profile组成的用户管理组件(包括页面个性化信息)就是以这种模式为核心构建起来的,在asp.net 2.0中,利用系统提供的API可以很容易的实现用户管理,角色管理,用户个性化信息的管理。这也是asp.net 2.0的一个重要组成部分,学习使用asp.net 2.0可以考虑从它入手。
一 基本结构
用户管理的三个组件是相互关联的,而且在数据设计上也是做了非常严格的数据约束。一个数据库可以存放多个系统的用户,以便用户的统一管理,每个用户都有一个ApplicationId字段来标识它是属于哪个系统的用户。

如上图所示,表与表之前看似有着极其复杂的关联关系。先来理清一下各个表的作用吧:
1. aspnet_Application :用来保存系统名的,每一个不同的系统名都会生成一个唯一的ID,这个ID是与其它关联关系的外键。
2. aspnet_Users :用户表,但是它只保存了用户ID基本不会变的信息,并且会有一个Uniqueidentifier类型的字段UserId来作为每个用户的唯一标识(并且是主键),以方便与其它表的关联。值得注意的是还有一个ApplicationId字段,通过这个字段与aspnet_Application进行关联,以此来将区分用户是属于哪个系统的。由于UserName字段本身并不是主键,所以它是可以有重复值的,但不是说一个系统允许存在相同的用户名。正是ApplicationId字段来标识相同的用户名是属于不同的系统的。ApplicationId字段的作用就在于此,所以你可以看到很多表中都有这个字段的存在。
3. aspnet_Membership :保存着用户的一些可变(不可变)的基本信息。
|
字段
|
作用
|
|
ApplicationId
|
标识用户属于哪个系统
|
|
UserId
|
与aspnet_Users关联的字段
|
|
Password
|
加密或未加密的密码
|
|
PasswordFormat
|
指示密码的存储格式(明文或使用的加密码算法)
|
|
PasswordSalt
|
用于辅助密码验证的字段(不可逆算法进行密码验证时所需)
|
|
MobilePIN
|
手机PIN码,同样可以唯一标
|
|
Email
|
Email (可配置Email是否必须唯一)
|
|
LoweredEmail
|
小写的Email
|
|
PasswordQuestion
|
密码安全问题(可配置是否必须)
|
|
PasswordAnswer
|
密码安全问题答案
|
|
IsApproved
|
用户是否已认证(为0时用户无法登录)
|
|
IsLockedOut
|
用户是否已锁定(可配置密码重试次数,超过则自动锁定该用户)
|
|
CreateDate
|
创建时间
|
|
LastLoginDate
|
最后登录时间
|
|
LastPasswordChangedDate
|
最后修改密码的时间
|
|
LastLockoutDate
|
最后被锁定的时间
|
|
FailedPasswordAttemptCount
|
密码重试次数
|
|
FailedPasswordAttemptWindowStart
|
密码失败尝试窗口打开 时间
|
|
FailedPasswordAnswerAttemptCount
|
安全密码重试次数
|
|
FailedPasswordAnswerAttemptWindowStart
|
类同FailedPasswordAttemptWindowStart
|
|
Comment
|
其它自定义信息
|
从这些可以看到,在aspnet_Membership表存储着一些用户的公共属性信息。根本不同的需求的,我们可能还需要其它的一些自定义字段,在这种情况下最好不要直接修改这个表,而是应该新建一个表,或利用Profile功能来实现。
4. aspnet_Profile :存储着用户的一些个性化信息。由于个性化信息的字段是可变的,所以它采用了一种比较灵活的存储方式,类似于:property1:value1;property2:value2的形式(具体分隔符可能有误)来存储多个可变的属性值。再通过解析,分解出正确属性和值。
5. aspnet_Roles :存储系统的所以有角色,同样用ApplicationId来标识该角色属于哪个系统所有的。
6. aspnet_UsersInRoles :多对多的关系表,存储哪些用户属于哪些角色。
7. Aspnet_Paths,aspnet_PersonalizationPerUser,aspnet_PersonalizationAllUsers:这几个表组合起来存储个性化页面设置,配合WebPart使用。
二、如何注册所需的数据库及存储过程。
了解了数据库结构后,接下来要解决的是就是如何创建这样一个数据库了。我们不可能手工的去创建这些表和存储过程的,当然后去手工去运行一段SQL语句也不是有点麻烦的。不用担心,.NET 2.0中已经提供相关的工具来注册这样一个数据库了,运行.NET命令行窗口,运行aspnet_regsql命令,会出现向导窗口。一段解析性提示进入下一步:

两个选项分别为配置aspnet数据库和删除已配置的aspnet数据库,进入下一步后:

输入所需的数据库验证信息,在Database字段处需要注意:如果有选择已有的数据库,那这些表和存储过程将被创建到已有的数据库中;如果输入不存在的数据库名,那么将会创建一个新的数据库,存放这些表和存储过程,默认数据名为aspnetdb。再两步以后就会完成了数据库的注册了。
BTW:aspnet_regsql 命令还可以做很多事,可以参考MSDN得到更多的帮助。
三、配置文件的支持。
Provider模式非常依赖配置文件支持,实际上它是创建型设计模式的一种很直接的应用。由于框架内部调用都是抽象类型的接口,所以要给通过配置文件给这些抽象类提供具体的实现类,并配置一些所需的参数。在asp.net 2.0的web.config文件中,提供了对这些配置的直接支持,并且还可以很容易的进行扩展。
四、接口支持。
继承了.NET 框架的优良传统,整个的Membership,Roles,Profile等功能都提供了非常简单的API供开发人员调用,Membership,Roles都被封装成静态类,并且重载了非常多的方法重载,以方便调用。而Profile更是在VS 2005 IDE的帮助下,可以动态生成类型定义,支持设计时的属性调用。
用户数据库就是由这些表组成的,理解了数据库的结构后,再来看待整个asp.net 2.0用户管理功能就会有比较清晰的认识了。另外两个表与用户管理没有直接关系的:aspnet_WebEvent_Events,用于记录系统在运行过程中去现的一些异常信息,需配合Health monitor使用;aspnet_SchemaVersions用于记录当前的框架版本信息,默认已经有记录了。
posted @ 2008-09-09 17:36 啊凡 阅读(53) 评论(0)
编辑