ASP.NET2.0的成员和角色管理

不得不说,ASP.NET2.0中的membership和roles实在太好用了,配合表单认证使得权限管理无比的方便。

现在我将使用过程中遇到的一些问题和需要注意的地方记录在此,方便他日需要用到却已遗忘的时候可复习重温,同时也方便不会使用membership的朋友快速上手~

由于我只用过sql server和accesss,故只提供这两种实现。

如果用的是sql server ,有一点需要注意的是在我们使用membership功能的时候,VS会自动在当前项目的app_data文件夹下建立相应的数据库,但这必须是express版的数据库才行,如果是开发版的话,就需要自己手动建立。

运行C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe

C盘是系统盘。

运行后会开启一个向导界面,一路操作下去即可。

如果使用的是ACCESS,则需下载微软提供的一个provider,sampleaccessproviders.vsi

具体哪个网址下我忘了,不过我会上传到空间中提供下载,便人便己~

sampleaccessproviders.vsi里面有一个项目,编译一下,拿到一个DLL,在需要的项目中添加引用,然后在把里面的那个ACCESS数据库拿过来,COPY到自己的项目中,在设置一下webconfig(下面会介绍),就OK了。

现在说一下使用成员和角色管理一些必要的webconfig设置。

sql server的和access大体无差别,故只说一种足以。

 

Code

 

属性很多,基本上不用管它,有些一看名字就明白,不明白的MSDN也有。一般自己要手动改一改的就三个地方,一个是minRequiredPasswordLength属性,它要求最短的密码长度,默认是7位,对一些小网站来说没必要这么长,故可以改改。还有是minRequiredNonalphanumericCharacters,问你密码中最少需要几个特殊字符,默认是1,但特殊字符输入不方便,有时候也没必要这么严格,故也可改改。

最后就是一定要该的地方,connectionStringName,连接字符串,默认是啥我忘了,反正是根据express版数据库配的,我们要将它该成自己的数据库连接字符串,例如:

Code

 

唉,为了避免二义性理解,我将自己机子上的sa密码都抖出来给人看了,一般来说这应该像黄花大闺女的肚兜一样深藏不露的。

同样,角色管理的配置也是雷同:

Code

 

嗯,忘了说,成员管理需与登录组件配合使用,非要用自己的也无妨,只要知道membership用什么加密算法的,自己也用相同的加密算法,然后和数据库里的对比一下,就OK了。我没试过,因为有现成的东西在,不用白不用。

下面在说一下配合角色管理的表单验证。

比如说访问我的网站的用户一共有三类人,匿名用户、注册用户、管理员,显然,给注册用户看的一些东西不能给匿名用户看,给管理员看的一些东西谁都不能看。

那么可以建立三个文件夹,分别是public、member、admin。

Code

 

上面的意思很明显,public 允许任何人访问,admin允许角色为Admin访问、拒绝其他人,member允许角色为Admin和member的、拒绝其他人。

一个用户访问了不该让它访问的页面,就跳转到登录页面:

Code

 

关于表单认证的部分知识我是学之于CSDN上的某篇博客,谁写的我忘了,具体名字我也忘了,我只知道在百度上搜索''ASP.NET安全认证''便会出现一大片……

 

详细代码
accessprovider

posted on 2009-02-28 12:47  lolicon  阅读(528)  评论(1编辑  收藏  举报