在ASP.NET MVC5中注册期间将数据插入另一个表

时间:2015-12-14 01:54:43

标签: asp.net asp.net-mvc entity-framework

据我所知,ASP.NET MVC创建了一个默认表“AspNetUser”,用于在注册期间存储用户信息。如何获取其中一些数据,例如“用户名”,并在注册过程中将其存储在单独的表中。

我试图获取用户提供的“用户名”,默认情况下存储在“AspNetUser表”中,并在注册过程中将其存储在“学生表”中

注册行动

  // POST: /Account/Register
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Register(RegisterViewModel model)
    {

        if (ModelState.IsValid)
        {

        StudentEntities db = new StudentEntities();

        var student = new Student
       {
          Name = model.Username     
       };
           db.Student.Add(Student);
           db.SaveChanges();

            var user = new ApplicationUser() { UserName = model.UserName };
            var result = await UserManager.CreateAsync(user, model.Password);
            if (result.Succeeded)
            {
                await SignInAsync(user, isPersistent: false);
                return RedirectToAction("Welcome", "Home");
            }
            else
            {
                AddErrors(result);
            }
        }

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

这似乎不起作用

这似乎不起作用

  StudentEntities db = new StudentEntities();

        var student = new Student
       {
          Name = model.Username     
       };
           db.Student.Add(Student);
           db.SaveChanges();

1 个答案:

答案 0 :(得分:0)

如果您使用的是MVC5,则表示您正在使用identity2。因此,最好使用它来获取用户详细信息。最好的方法是这样做: 添加以下using语句。

using Microsoft.AspNet.Identity;

您现在可以从HttpContext.User.Identity获取更多方法。

var UserName = User.Identity.GetUserName();
var UserId = User.Identity.GetUserId();

请注意,身份通常使用电子邮件作为用户名。但无论如何你都可以改变它。