【发布时间】: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 您好,我已经编辑了我的代码,但出现空异常