2010-06-12 3 views
1

Я пытаюсь зарегистрировать нового пользователя, а также понять, как получить новый идентификатор пользователя, чтобы я мог начать создавать свои собственные пользовательские таблицы с сопоставлением идентификатора пользователя в таблице пользовательских членских данных asp.net. ,Членство в ASP.NET MVC, Get new UserID

Ниже мой код:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Register(string userName, string email, string position, string password, string confirmPassword) 
    { 

     ViewData["PasswordLength"] = MembershipService.MinPasswordLength; 
     ViewData["position"] = new SelectList(GetDeveloperPositionList()); 

     if (ValidateRegistration(userName, email, position, password, confirmPassword)) 
     { 
      // Attempt to register the user 
      MembershipCreateStatus createStatus = MembershipService.CreateUser(userName, password, email); 

      if (createStatus == MembershipCreateStatus.Success) 
      { 
       FormsAuth.SignIn(userName, false /* createPersistentCookie */); 

       return RedirectToAction("Index", "Home"); 
      } 
      else 
      { 
       ModelState.AddModelError("_FORM", ErrorCodeToString(createStatus)); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(); 
    } 

Я сделал некоторые исследования и многие сайты сообщают мне использовать Membership.GetUser() ProviderUserKey;. но это вызывает ошибку, поскольку членство равно NULL.

Я поместил эту строку кода чуть выше «return RedirectToAction (« Index »,« Home »); в выражении if.

Пожалуйста, может кто-то советовать мне на это ...

Заранее спасибо

ответ

0

Это будет получать ProviderKey:

if (createStatus == MembershipCreateStatus.Success) 
{ 
    FormsAuth.SignIn(userName, false /* createPersistentCookie */); 

    MembershipUser newUser = Membership.GetUser(model.UserName); 
    string key = newUser.ProviderUserKey.ToString(); 

    return RedirectToAction("Index", "Home"); 
} 
1

Создать пользователя с помощью MembershipProvider, это вернет MembershipUser пример. Где вы можете получить доступ к ProviderKey для доступа к идентификатору.

MembershipCreateStatus status; 
MembershipUser user = Membership.Provider.CreateUser(userName, password, email, null, null, true, null, out status); 
if (status == MembershipCreateStatus.Success) 
{ 
    object key = user.ProviderUserKey; 
} 
Смежные вопросы