【问题标题】:ASP.NET MVC Membership, Get new UserIDASP.NET MVC 成员资格,获取新的 UserID
【发布时间】:2010-06-12 15:11:17
【问题描述】:

我正在尝试注册一个新用户,并且还了解如何获取新用户 ID,因此我可以开始创建自己的用户表,并将用户 ID 映射到 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;但这会引发错误,因为 Membership 为 NULL。

我将这行代码放在“return RedirectToAction("Index", "Home");" 的上方在 if 语句中。

请有人给我建议...

提前致谢

【问题讨论】:

    标签: c# asp.net-mvc asp.net-membership


    【解决方案1】:

    使用 MembershipProvider 创建用户,这将返回一个 MembershipUser 实例。在哪里可以访问ProviderKey来访问Id。

    MembershipCreateStatus status;
    MembershipUser user = Membership.Provider.CreateUser(userName, password, email, null, null, true, null, out status);
    if (status == MembershipCreateStatus.Success)
    {
       object key = user.ProviderUserKey;
    }
    

    【讨论】:

      【解决方案2】:

      这将检索 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");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多