怎么更好的配置关于VS2003配置文件的技巧VS2003配置文件

大家知道VS2003配置文件已经出来了,而且多加了许多优异的功能,但由于时间限制,很多人还徘徊在VS2003配置文件中。最近我研究communityServer发现里面竟然后masterpage和memebership两个类。

Membership里共有四个大类:

◆scalablehosting:表示一切类的基类。

◆scalablehosting.configuration:一些配置的基本信息(有cookie的存放地址,名称等)。

◆scalablehosting.profile:用户的个性化信息。不同的用户可能看到不同的界面和不同的配置。

◆scalablehosting.Security:安全性设置,就是用户角色和权限的配置了,都在这里面。

我自己的开始是小部分的练习,就是从添加用户,修改,删除用户,然后授予角色,设置特性开始的。所以请容许我按照我的思路来描述这些类,而不是一个类一个类的来讲他们的作用。我依次会从用户的增,删,改,查询为起点来说明,这就是***讲。

添加用户:

因为是VS2003配置文件***个小DEMO,所以需要做的前提事情很多,但以后这些就不需要做了,虽然看起来很麻烦,我也是费了一天的时间才调整好。但为了以后方便的使用,建议大家还是先这样布置好。

首先在webconfig中,添加配置节。注意配置类型的修改,如果从communityserver中copy过来,是带publickey的,这个我们在测试的时候可以去掉(当然AssemblyInfo.cs中的keyfile属性内容设置为""),如果把publickey去掉,必须将memberrole.dll放在你的应用程序的根目录下。注意配置节里凡是有关空间名称的地方,都得把type修改成memberrole.dll中的空间名称,因为communityserver中用的是自己扩展的类。

还有就是自己添加的appSettings里面的连接字符串的名字要和上面这些配置节的名字一致。对配置节不熟悉的人可以多参考一些配置节设置的资料,我上面也有一篇,写的比较简单。其次是数据库里面的设置,必须加入communityserver中的六个aspnet_开头的表。而且还得把所有aspnet开头的存储过程copy过来。注意表aspnet_SchemaVersions虽然与其他表无关联,但里面的内容很重要,也得copy过来。#t#

添加用户的主要方法用到的是SqlMembershipProvider.cs中的CreateUser()。我们先来说说用到的类(当然先得在你的应用程序里添加引用memberrole.dll然后在cs文件中,添加using......)

membershipuser:其实就是membership表的一个实体类,注意这个类有一个类属性[Serializable]表示可序列化的,也就是你可以把这个对象当成是一个只有一条记录的dataTable,如果需要返回多条记录,那就使用MembershipUserCollection,这个也是个[Serializable]的类,功能类似于DATASET。现在流行orm结构,也就是对象关系映射。直接通过操作实体类的方法而不是SQL语句来更新数据库。通过数据表生成实体类的方法有很多,己写的工具或者codesmith+模板的形式都可以,网络上一搜很多,此处题外话。

membership:这个就是对用户进行增,删,改的操作类,返回的当然就是membershipuser对象。注意membership的大部分方法都是static方法,也就是说不需要实例化membership就可以直接使用它的方法
例如:membership.createuser(...);

我们可以看到,membership里的createuser有很多重载方法,其实最主要的就是说明一个用户必须得有用户名和密码,其他都可忽略。所有的操作都其实都在参数最长的那个方法里,然后从这个方法调用Membership.Provider.CreateUser(...),其实provider就类似于一个工厂方法,通过它进行

Membership.Initialize(),然后在这个方法里通过查询配置节来获得究竟使用sqlprovider还是accessprovider,为vs2003使用的memberrole.dll只实现了sqlprovider方法,而vs2005里的还实现了access方法。这以后就去调用SqlMembershipProvider.cs中的createuser(..)方法,这才是真正增加用户的方法,这里可以看到参数的赙值,调用的存储过程,以及错误的返回和判断。

当我们只需要用户名和密码来添加用户的时候,注意修改配置文件里的membership配置节的地方,将requiresUniqueEmail属性改为false,这样就不需要e-mail必须填写了。

例子:

两个textbox(一个是用户名txtname,一个是密码txtpwd),一个按钮(btn),然后在按钮的click事件中直
接写:
虽然主要用到的方法是以上这几个,但好多错误和安全的判断都在SecUtility.cs,有兴趣的话我们可以去关心它一下。

就OK了,到aspnet_membership数据表中查看你添加的用户吧。系统自动会把关联表里的内容也添加好,看看aspnet_Users是不是也有内容。很简单吧。

查询用户:

VS2003配置文件以上的配置都设置好后,后面会越来越简单。
所有对用户的操作我们都在membership类中寻找,查询用户主要有两个方法FindUsersByName()和FindUsersByEmail,他们都有多种重

载,大家根据自己的情况使用。这两个方法返回的都是MembershipUserCollection对象(表示可能多条记录

修改用户密码:

因为我的这个memberrole.dll版本中没有任何关于修改的方法,但SqlMembershipProvider提供了很多修改方法,包括修改membershipuser里面的所有属性的方法,所以我们很容易的在membership类中自己调用。我自己增加一个修改密码的,注意使用static方法:

由于SqlMembershipProvider的方法中提供了对参数的检验,所以这个地方我们什么都不用管,直接把参数给它就好。

删除用户:

删除用户包括两种方法,一种是只删除用户,另一种是删除与用户关联的表中的数据。其实在membership只是一个方法重载了两次。

写了这么多,做了这么多后,我对memberrole中关于membership中的部分算是基本上懂了。以上主要都是对用户的基本操作,除了前提配置有点麻烦后,了解这些操作,连一个小时都不到。朋友们,你们明白了吗。

明天我将研究memberrole里面的role究竟有什么好东东。

分享标题:怎么更好的配置关于VS2003配置文件的技巧VS2003配置文件
网站链接:http://www.shufengxianlan.com/qtweb/news45/424845.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联