J'obtiens cette erreur:Le nom ne peut être nul ou vide: _userManager.CreateAsync
Name cannot be null or empty
tout en faisant un appel POST: https://localhost:44346/api/account/register. _userManager.CreateAsync ne l'aime pas pour une raison quelconque.
Mon code:
UserModel.cs Classe:
public class UserModel : IdentityUser
{
[Required]
[Display(Name = "User name")]
public string UserName { 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; }
}
AccountController.cs:
// POST api/Account/Register
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(UserModel userModel)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
IdentityResult result = await _repo.RegisterUser(userModel);
IHttpActionResult errorResult = GetErrorResult(result);
if (errorResult != null)
{
return errorResult;
}
return Ok();
}
classe AuthRepository où RegisterUser est mis en œuvre:
private AuthContext _ctx;
private UserManager<UserModel> _userManager;
public AuthRepository()
{
_ctx = new AuthContext();
_userManager = new UserManager<UserModel>(new UserStore<UserModel>(_ctx));
}
public async Task<IdentityResult> RegisterUser(UserModel userModel)
{
UserModel user = new UserModel
{
UserName = userModel.UserName
};
try
{
var result = await _userManager.CreateAsync(user, userModel.Password);
return result;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
Wha t Je ne comprends pas pourquoi je reçois cette erreur "Nom ne peut pas être nul" lorsque je l'attribue clairement.
Ce que j'ai essayé jusqu'à présent: 1. Ajout d'un nouveau nom de la propriété dans mes UserModel.cs 2. Suppression UserName de la classe userModel comme suggéré ici Name cannot be null or empty. asp.net identity mvc 5 + EntityFreamwork mais qui me donne une autre exception (userModel n'existe pas dans le contexte).
Je suis en train de mettre en œuvre OAuth comme le suggère ici: http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/ Son code source: https://github.com/tjoudeh/AngularJSAuthentication
S'il vous plaît aider. Editer: Je vois 2 propriétés UserName pour une raison quelconque et 1 d'entre elles est nulle. Est-ce la raison pour laquelle je vois une erreur?
Juste curieux - dans la classe AuthRepository -> méthode RegisterUser - pourquoi vous réaffectez userModel à une nouvelle instance de UserModel (utilisateur)? – Rex
J'essayais juste quelques choses. J'ai oublié de le commenter. – 90abyss
Ok. Alors, à quel point vous obtenez cette exception? Si vous pouviez poster une pile trace d'exception qui aide à comprendre. – Rex