C#.NET:petshop之membership(上篇…

来源:互联网 发布:tpshop源码下载 编辑:程序博客网 时间:2024/05/23 19:39
关于petshop4中membership的用法,我这里分2篇文章进行讲解,上篇主要是关于控件的使用以及配置文件的配置,下篇主要就Profile进行下讲解;

说明:在ASP.NET应用程序中,Membership类用于验证用户凭据并管理用户设置(如密码和电子邮件地址)。MemberShip类可以独自使用,或者与FormsAuthentication一起使用以创建一个完整的WEB应用程序或网站的用户身份验证系。Login控件封装了Membership类,从而提供一种便捷的用户验证机制。


手稿图:(上传后质量被降低太多。。。直接看下面分解吧)

C#.NET:petshop之membership(上篇)


测试说明:

1.首先在数据库中创建一个空数据库:MembershipTest

2.然后通过aspnet_regsql.exe(位于X:\Windows\Microsoft.NET\Framework\v2.0.50727);

为应用程序配置sql server

C#.NET:petshop之membership(上篇)

 

之后查看数据库,会自动生成几张数据表,如下:

C#.NET:petshop之membership(上篇)

 

说明:这些生成的表实际上跟msPetshop4Services数据库中的表是一样的,包括存储过程;

换句话说,msPetShop4Services数据库就是为Membership提供数据服务的。

 

3.web.config配置文件中,标签内增加:

 

 <</span>authentication mode="Forms">//注意这里的mode用Forms

      <</span>forms defaultUrl="~/Defult.aspx" loginUrl="~/Login.aspx" timeout="30"></</span>forms>

默认url                 登录url              超时时间:30分钟

</</span>authentication>

同时添加

标签

注意,membership的内容可以在

X:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG文件夹下的machine.config内查找标签获得;

将上述配置节点添加进配置文件后,需要添加defaultProvider属性,并在标签内添加,标签用于防止provider的名字之前在其他地方已经被使用;

同时还要修改add标签中的相关属性,比如:

connectionStringName:(这个需要设置为:connectionStrings标签内添加的数据连接字符串的名字,比如conn

enablePasswordRetrieval:这个属性表示在忘记密码的时候是否能够获取密码,一般设false

enablePasswordReset:是否允许修改密码,一般设true

requiresQuestionAndAnswer:注册的时候是否需要问题和答案

requiresUniqueEmail:每个用户的Email是否都是唯一的

maxInvalidPasswordAttempts:密码输入错误次数(当超过这个次数时,会锁定该帐号)

minRequiredPasswordLengt7:表示密码的最小长度,这里表示至少7

MinRequiredNonalphanumericCharacters  1:表示至少需要几位特殊字符,根据上面一个属性,那么这里表示7位密码中至少要有一个特殊字符

passwordAttemptWindow锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数,详见:

http://technet.microsoft.com/zh-cn/magazine/system.web.security.membershipprovider.passwordattemptwindow(VS.80).aspx

 

passwordStrengthRegularExpression:用于设置密码强度的正则表达式

整体如下:

C#.NET:petshop之membership(上篇)

4.之后在aspx页面中就可以添加LoginView控件开始使用这些配置的东西了(LoginView控件在工具箱的【登录】选项卡内)

C#.NET:petshop之membership(上篇)


C#.NET:petshop之membership(上篇)
从上到下分别是:匿名模板,登录之后用的模板,角色组模板


解决方案中添加的项有:

C#.NET:petshop之membership(上篇)
各页面说明:

 

A.default页面

C#.NET:petshop之membership(上篇)

说明下,这里登陆之后的模板中标签是为了在成功注册并跳转到default登录页面后显示【注销】


 

B.Login页面

C#.NET:petshop之membership(上篇)

 

CreateUserText:登录控件上增加一个注册链接

CreateUserUrl:跟上面一个属性配对


 

C.Register页面

添加注册向导:CreateUserWizard控件

C#.NET:petshop之membership(上篇)

其中需要给控件添加ContinueDestinationPageUrl属性,用于指定注册成功后的跳转页面


 

 

D.PasswordReset:修改密码页面

添加控件PasswordRecovery即可

C#.NET:petshop之membership(上篇)

 

5. 页面权限部分

A.根目录下页面访问权限设置

C#.NET:petshop之membership(上篇)

说明:location标签是在system.web外面的,然后location标签内的授权标签authorization标签内再套一个system.web标签,并且需要在location标签内添加path属性,指明哪个页面需要授权、批准,deny user=?,问号表示拒绝匿名用户;

这样子设置以后,如果用户在未登录的状态下去访问Account.aspx这个需要授权登录认证的页面时,因为在上面已经设置了权限配置,这个时候页面会自动跳转到登录页面Login.aspx这个自动跳转页面链接是由在system.web下的authentication标签内设置的loginUrl属性决定的


 

B.在自定义文件夹内的页面的访问权限设置

 

比如页面在C#.NET:petshop之membership(上篇)Test.aspx

 

如果要设置的该页面的访问权限,需要在admin文件夹下再添加一个配置文件web.config,之后再该配置文件中添加跟上述配置文件一样的授权代码即可;

另外,如果该文件夹(admin)下的所有页面都需要进行授权认证,那么可以这样子配置:

C#.NET:petshop之membership(上篇)直接在system.web标签下进行授权节点配置

 


 

PS.至此,这里所有需要验证通过后才能访问的页面,一旦为匿名用户访问,都会跳转至Login.aspx页面,当登录成功后,会跳转至当登录前访问到页面,而如果登录前没有访问过其他页面,则会跳转至defaultUrl中设置的值,即这里为Deafult.aspx页面


我的更多文章:
  • (2013-02-08 13:13:54)