0

MVC 4 を使用しており、AddedById という名前の UserProfile に新しいフィールドを追加しようとしています (ハウスキーピング用)。

ここに私が持っているものがあります:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new
                {
                    FirstName = model.FirstName,
                    LastName = model.LastName,
                    AddedDate = DateTime.UtcNow
                    AddedByID = // to sure how to get the id because the account has not been created yet.
                });

アカウントの作成後に AddById を更新する必要がありますか?

4

1 に答える 1

0

サポート チームが誰かのアカウントを作成する可能性があるためです。

その場合、 が であることを確認し、AddedByIDを作成する前にNullableまずSupport Teamを認証してもらいますUser

次に、Register Actionこのように見えます。

    //
    // POST: /Account/Register

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            using (EfDb db = new EfDb())
            {                                     
                try
                {
                    var userProfile = db.UserProfiles.Local.SingleOrDefault(u => u.UserName == User.Identity.Name)
                                ?? db.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name);

                        WebSecurity.CreateUserAndAccount(
                            model.UserName,
                            model.Password,
                                new
                                    {
                                        FirstName = model.FirstName,
                                        LastName = model.LastName,
                                        AddedDate = DateTime.UtcNow,
                                        AddedByID = userProfile.UserId
                                    }
                            );

                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }
于 2013-05-19T20:21:44.937 に答える