2017-10-03 10 views
0

는이 오류를 받고 있어요 :이름은 null 또는 비어있을 수 없습니다 : _userManager.CreateAsync

Name cannot be null or empty

후 호출하는 동안 : https://localhost:44346/api/account/register합니다. _userManager.CreateAsync는 어떤 이유로 든 그것을 좋아하지 않습니다.

내 코드 :

UserModel.cs 클래스 :

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 : RegisterUser이 구현

// 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(); 
     } 

AuthRepository 클래스 :

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; 
      } 

     } 

뭐 이해가 안되는 이유는 명확하게 지정하면 "이름이 null 일 수 없습니다"라는 오류가 발생하는 이유입니다. 여기 Name cannot be null or empty. asp.net identity mvc 5 + EntityFreamwork 제안 1. UserModel 클래스에서 사용자 이름을 제거 내 UserModel.cs 2에 새 속성 이름을 추가하지만 그 UserModel 컨텍스트에 존재하지 않는 (나에게 다른 예외를 제공합니다 : 내가 지금까지 시도 무엇

). http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/이 그의 소스 코드 : https://github.com/tjoudeh/AngularJSAuthentication

도와주세요 여기 제안

것은 내가 OAuth를 구현하려합니다.

편집 : 어떤 이유로 2 개의 UserName 속성이 표시되며 그 중 1 개가 null입니다. 그게 내가 왜 실수를하는 이유입니까? 대신 EntityFramework 하나,이 문제의

enter image description here

+0

그냥 호기심 - AuthRepository 클래스 -> RegisterUser 메서드 - 왜 UserModel을 UserModel (user)의 새 인스턴스에 다시 할당 하시겠습니까? – Rex

+0

나는 몇 가지 것을 시도하고 있었다. 그것을 코멘트하는 것을 잊었다. – 90abyss

+0

확인. 그렇다면이 예외가 발생한 시점은 무엇입니까? 당신이 이해하는 데 도움이 예외의 스택 추적을 게시 할 수 있다면. – Rex

답변

0

를 사용하여 ADO.NET 연결 문자열 자체를 해결합니다.