petshop4.0 详解之七(PetShop表示层设计)(3)

petshop4.0 详解之七(PetShop表示层设计)(3)
2007-09-12 16:22

代码中,aspnet_Membership_CreateUser为aspnet_regsql工具为membership创建的存储过程,它的功能就是创建一个用户。

OracleMembershipProvider类中对CreateUser()方法的定义如下:

public override MembershipUser CreateUser( string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object userId, out MembershipCreateStatus status) {
    
//前面的代码略;
//Create connection
OracleConnection connection = new OracleConnection(OracleHelper.ConnectionStringMembership);
connection.Open();
OracleTransaction transaction
= connection.BeginTransaction(IsolationLevel.ReadCommitted);
try {
   DateTime dt
= DateTime.Now;
  
bool isUserNew = true;

  
// Step 1: Check if the user exists in the Users table: create if not    
  int uid = GetUserID(transaction, applicationId, username, true, false, dt, out isUserNew);
  
if(uid == 0) { // User not created successfully!
    status = MembershipCreateStatus.ProviderError;
   
return null;
   }

  
// Step 2: Check if the user exists in the Membership table: Error if yes.
  if(IsUserInMembership(transaction, uid)) {
    status
= MembershipCreateStatus.DuplicateUserName;
   
return null;
   }

  
// Step 3: Check if Email is duplicate
  if(IsEmailInMembership(transaction, email, applicationId)) {
    status
= MembershipCreateStatus.DuplicateEmail;
   
return null;
   }

  
// Step 4: Create user in Membership table     
  int pFormat = (int)passwordFormat;
  
if(!InsertUser(transaction, uid, email, pass, pFormat, salt, "", "", isApproved, dt)) {
    status
= MembershipCreateStatus.ProviderError;
   
return null;
   }

  
// Step 5: Update activity date if user is not new
  if(!isUserNew) {
   
if(!UpdateLastActivityDate(transaction, uid, dt)) {
     status
= MembershipCreateStatus.ProviderError;
    
return null;
    }

   }

   status
= MembershipCreateStatus.Success;
  
return new MembershipUser(this.Name, username, uid, email, passwordQuestion, null, isApproved, false, dt, dt, dt, dt, DateTime.MinValue);
}

catch(Exception) {
  
if(status == MembershipCreateStatus.Success)
    status
= MembershipCreateStatus.ProviderError;
  
throw;
}

finally {
  
if(status == MembershipCreateStatus.Success)
    transaction.Commit();
  
else
    transaction.Rollback();
   connection.Close();
   connection.Dispose();
}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值