学者对于VS2005性能指标的判定与开发整理
创始人
2024-06-12 22:31:49
0

关于VS2005性能在此做了个分析,希望对大家有所帮助,并共同进步。由于原文件太大,此处无法上传,所以大家有communitysever的可以从里面获得然后反编译为自己所用,没有的就到网络上搜索VS2005性能的文章。很多的。

Membership里共有四个大类:
◆scalablehosting:表示一切类的基类。
◆scalablehosting.configuration:一些配置的基本信息(有cookie的存放地址,名称等)。
◆scalablehosting.profile:用户的个性化信息。不同的用户可能看到不同的界面和不同的配置。
◆scalablehosting.Security:安全性设置,就是用户角色和权限的配置了,都在这里面。

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

添加用户:

因为是***个小DEMO,所以需要做的前提事情很多,但以后这些就不需要做了,虽然看起来很麻烦,我也是费了一天的时间才调整好。但为了以后方便的使用,建议大家还是先这样布置好。
首先在webconfig中,添加配置节。注意配置类型的修改,如果从communityserver中copy过来,是带publickey的,这个我们在测试的时候可以去掉(当然AssemblyInfo.cs中的keyfile属性内容设置为""),如果把publickey去掉,必须将memberrole.dll放在你的应用程序的根目录下。注意配置节里凡是有关空间名称的地方,都得把type修改成memberrole.dll中的空间名称,因为communityserver中用的是自己扩展的类。

还有就是自己添加的appSettings里面的连接字符串的名字要和上面这些配置节的名字一致。对配置节不熟悉的人可以多参考一些配置节设置的资料,我上面也有一篇,写的比较简单。

其次是数据库里面的设置,必须加入communityserver中的六个aspnet_开头的表。而且还得把所有aspnet开头的存储过程copy过来。注意表aspnet_SchemaVersions虽然与其他表无关联,但里面的内容很重要,也得copy过来。

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

membershipuser:其实就是membership表的一个实体类,注意这个类有一个类属性[Serializable]表示可序列化的,也就是你可以把这个对象当成是一个只有一条记录的dataTable,如果需要返回多条记录,那就使用MembershipUserCollection,这个也是个[Serializable]的类,功能类似于DATASET。现在流行orm结构,也就是对象关系映射。直接通过操作实体类的方法而不是SQL语句来更新数据库。

通过数据表生成实体类的方法有很多,己写的工具或者codesmith+模板的形式都可以,网络上一搜很多,此处题外话。
membership:这个就是对用户进行增,删,改的操作类,返回的当然就是membershipuser对象。注意membership的大部分方法都是static方法,也就是说不需要实例化membershi以直接使用它的方法

例如:membership.createuser(...);

我们可以看到VS2005性能,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事件中直接写:

虽然主要用到的方法是以上这几个,但好多VS2005性能错误和安全的判断都在SecUtility.cs,有兴趣的话我们可以去关心它一下。#t#
 Membership.CreateUser(txtname.Text,txtpwd.Text);就OK了,到aspnet_membership数据表中查看你添加的用户吧。系统自动会把关联表里的内容也添加好,看看aspnet_Users是不是也有内容。很简单吧。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...