簡體   English   中英

如何在ASP.NET MVC3的帳戶控制器中訪問UserId?

[英]How to access UserId in account controller in asp.net mvc3?

我想在用戶注冊后向所有用戶分配表的行。 該表具有名為UserId的列和其他一些列。 我想將此表的UserId設置為新注冊用戶的UserId,並將其他值設置為0。我想在Register函數中執行此操作。 但是我不知道如何在帳戶控制器的注冊功能中訪問UserID。 我使用默認的帳戶控制器及其功能。 寄存器功能的代碼是:

[HttpPost]
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;
                Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

                if (createStatus == MembershipCreateStatus.Success)
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", ErrorCodeToString(createStatus));
                }
            }

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

假設用戶是您的模型,則控制器應該是這樣的

class Account:Controller{

[HttpPost]
ActionResult Register(User myModel){

var myUserId = myModel.UserId;

}
}

並且您的視圖應從這樣的內容開始

@model User

如果您將創建時為用戶生成的唯一標識符作為UserId引用,則可以找到它,

[HttpPost]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user
        MembershipCreateStatus createStatus;
        var user = Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

        if (createStatus == MembershipCreateStatus.Success)
        {
            var userId = (Guid) user.ProviderUserKey; //The unique identifier just created

            FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
            return RedirectToAction("Index", "Home");
        }
        else
        {
            ModelState.AddModelError("", ErrorCodeToString(createStatus));
        }
    }

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM