重写DNN6.2注册、登陆、修改等个人中心

一、重写DNN注册

  1. 创建新注册页面 MyRegiseter.aspx
  2. 添加相应皮肤
  3. 创建注册模块(样式排版好)
  4. 实现注册功能  

  概要说明重写DNN注册页面需要更改的内容

  1. 后台:MyRegister:UserUserControlBase
  2. 为了方便,可将DesktopModules/Admin/Security/Register.ascx.cs相应的拷贝
  3. 主要拷贝这几个方法CreateUser(),UpdateDisplayName() 以及属性RedirectURL,CreateStatus,AuthenticationType,UserToken

 这样只要在你的注册按钮事件 上 调用createUser(),就能注册新用户

     详细说明方法和属性的内容

  1.RedirectURL

  这个属性比较简单,就是注册成功或失败返回的页面,根据get,取地址returnurl的参数值,进行跳转操作。如果该参数为空,也可以通过Glovals.NavigateURL(tabid)

      来进行赋值跳转,tabid是每个DNN页面的对应数据库的ID。可在数据库表Tabs里查看

  2.CreateStatus

  这个属性的类型是 UserCreateStatus,这是个枚举,主要是用来显示当前状态,如果Success等,可按F12查看

      在CreateUser()方法中,用来判断注册成功与否 CreateStatus=UserController.CreateUser(ref user)

  UserController 类,包含了几乎所有用户的操作等内容,如注册方面,查看当前用户是否存在GetUserByName返回一个User类,如果为空,则不存在

  User类,可以看做是用户信息的实体类

      TestableUserController类,个人目前是用到,验证显示的用户名是否存在,GetUserByDisplayName(portId,text),portid为网站站点ID

  3.AuthenticationType

  目前没发现用处,你可在CreateUser()里,把他设置成string.empty,也不会报错

  4.UserToken

  如上,可设置为空,未见其功能

  5.UpdateDisplayName()

  修改当前的显示名称,跳转后现实名称,这步必加,否则会报错,用户可能为空

 

二、重写DNN登录

  1.如上,添加好页面和控件、样式,

  注意:在添加MyLogin页面的时候,in menu取消选中

  2.分析DNN自带的Login后台 :位置:DesktopModules/AuthenticationService/DNN/Login.ascx

  在OnLoginClick时,可以看到,UserCaptcha,这个是用来判断登录是否使用系统自带的图片验证码,如果你不用,可以把这个if去掉

  ctlCaptcha就是系统自带图片验证码控件

  登录的2个具体方法:UserController.ValidateUser(........, ref status) 

          和:OnUserAuthenticated(eventArgs)

  ValidateUser(...,ref status) 就是验证用户是否授权和验证登录成功与否,status是返回状态,是个枚举UserLoginStatus

  只要判断status是否不等于UserLoginStatus.Login_failure就可验证登录了

  OnUserAuthenticated是个未开源的代码

  后续...

 

 

   

 

posted @ 2012-07-02 18:14  RyanRuan  阅读(493)  评论(0编辑  收藏  举报
View Code