【问题标题】:ASP.NET how to access AspNetUsers table and return valuesASP.NET 如何访问 AspNetUsers 表并返回值
【发布时间】:2017-04-29 04:19:04
【问题描述】:

我成功地在 AspNetUsers 表中添加了一些字段,但我不知道如何检索它们。我的项目是 asp.net web api,我可以从令牌中检索用户名。我想通过给定的用户 ID 或用户名返回部门 ID。 并尝试喜欢,但这给了我无效的例外

   private ApplicationUserManager _userManager;


        public int GetdeptId(string username)
        {
           var dept =  _userManager.Users.Where(d => d.UserName == username).Select(c => c.DepartmentId).FirstOrDefault();
            return dept;


        }

这是我可以在 AspNetUsers 中创建字段并且可以成功插入值的方式。问题是从 AspNetUsers 返回值。

public class RegisterBindingModel
    {
        [Required]
        [Display(Name = "Email")]
        public string Email { get; set; }

        [Required]
        [Display(Name = "FirstName")]
        public string FirstName { get; set; }

        [Required]
        [Display(Name = "Lastname")]
        public string Lastname { get; set; }

        [Required]
        [Display(Name = "Department")]
        public int DepartmentId { get; set; }



        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }

然后是注册

public async Task<IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, Firstname = model.FirstName, LastName =        model.Lastname, DepartmentId = model.DepartmentId };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }

            return Ok();
        } 

提前谢谢你!

【问题讨论】:

  • 如果您使用默认的 ASP.NET 项目模板,您应该有一个名为 ApplicationUserManager 的类,在 UserManager 中您可以找到许多可以使用的 FindBy 方法... @987654326 @ 可能适合您的需求。
  • @RosdiKasim 感谢您的回复,但请告诉我如何做到这一点..我是这个员工的新手....我该如何制定代码?我不知道如何编码。再次感谢您
  • @RosdiKasim 您好,我已经编辑了我的代码,但出现空异常

标签: asp.net asp.net-web-api


【解决方案1】:

试试吧!

var context = new IdentityDbContext();

var users = context.Users.ToList();

【讨论】:

    【解决方案2】:

    如果您可以访问 ApplicationDbContext,例如 _db,那么您可以将其转换为 IdentityDbContext 并通过它访问表。例如 IdentityDbContext context = _db as IdentityDbContext; IEnumerable&lt;User&gt; users = context.Users;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-16
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2022-01-04
      • 2017-10-25
      • 1970-01-01
      相关资源
      最近更新 更多