繁体   English   中英

ASP.NET 如何访问 AspNetUsers 表并返回值

[英]ASP.NET how to access AspNetUsers table and return values

我成功地在 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();
        } 

先感谢您!

尝试!

var context = new IdentityDbContext();

var users = context.Users.ToList();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM