ASP.NET MVC Членство, получить новый идентификатор пользователя - PullRequest
1 голос
/ 12 июня 2010

Я пытаюсь зарегистрировать нового пользователя и также понимаю, как получить новый userID, чтобы я мог начать создавать свои собственные пользовательские таблицы с отображением userID в пользовательскую таблицу членства asp.net.

Ниже мой код:

 [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.

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

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

Ответы [ 2 ]

1 голос
/ 13 июня 2010

Создайте пользователя с помощью 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;
}
0 голосов
/ 13 июня 2010

Будет получен ключ 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");
}
...