0
사용자를 CreateAsync 할 때 오류가 발생합니다..NET Core 2 Identity CreateAsync 오류 캐스팅
var create = await _userManager.CreateAsync(user, model.Password);
내가 errors
라는 IdentityResult
에 액세스 할 수있는 특성이있다. 그러나 나는 그것을 액세스하는 방법을 해결할 수 없습니다. 어떤 생각이 나는 그것을 잡을 수 있으므로 나는 그것이 무엇을 잘못보고 있는지 알 수 있습니까?
아래에서 전체 컨트롤러 코드를 게시했습니다. 어떤 이유로 든 내 var를 만들려고 할 때마다 그냥 무시한다. 나는 그걸 밟을조차 수 없다.
namespace TechsportiseOnline.Controllers
{
[Produces("application/json")]
[Route("api/[controller]/[action]")]
public class RegistrationController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly IConfiguration _configuration;
private readonly IOptions<JWTSettings> _jwtConfig;
private readonly IEmailSender _emailSender;
public RegistrationController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
IConfiguration configuration,
IOptions<JWTSettings> jwtConfig,
IEmailSender emailSender)
{
_userManager = userManager;
_signInManager = signInManager;
_configuration = configuration;
_jwtConfig = jwtConfig;
_emailSender = emailSender;
}
[AllowAnonymous]
[HttpPost]
public async Task<IActionResult> Register([FromBody] RegisterModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = model.Email,
Email = model.Email,
FirstName = model.FirstName,
LastName = model.LastName,
MobileNumber = model.MobileNumber,
Marketing = model.Marketing,
Newsletter = model.Newsletter
};
var result = new CreateUserResult();
var create = await _userManager.CreateAsync(user, model.Password);
if (create.Succeeded == true)
{
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var callbackUrl = Url.EmailConfirmationLink(user.Id, code.ToString(), Request.Scheme);
await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);
//await _createContact.CreateContactAsync(model.Email, model.FirstName, model.LastName, model.Marketing, model.Newsletter);
var fields = new Dictionary<string, string>();
fields.Add("firstname", model.FirstName);
fields.Add("lastname", model.LastName);
fields.Add("newsletter", model.Newsletter.ToString());
fields.Add("marketing", model.Marketing.ToString());
string publicaccountid = "55ebcc8b-b23f-4843-9dcb-1df08811de65";
var createcontact = ElasticEmailClient.Api.Contact.AddAsync(publicAccountID: publicaccountid, email: model.Email, field: fields);
//await _signInManager.SignInAsync(user, isPersistent: false);
return CreatedAtRoute("CreateAccount", model);
}
else
{
return BadRequest("Could not register account");
}
}
else
{
return BadRequest("The model is invalid");
}
}
}
}
나는 비슷한 논리를 사용하여 시도했다, 그러나 나는 시도하고 (귀하의 예제에서 var에 createResult) 내 VAR에 관한 문을 작성하는 경우 모든 종류의를 배치하면 문제이며, 그것은 그것을 무시하고 다음 문장으로 건너 뜁니다 ... 저는 컨트롤러에서 전체 코드를 포함하도록 제 질문을 업데이트했습니다. –
"그것을 무시하고 다음 명령문으로 건너 뜁니다.": create.Succeeded는 거짓이므로 다음 명령문으로 넘어갑니다. 아니면 프로그램이 거기에 매달려 있습니까? _userManager가 NULL인지 여부를 확인했는지 그리고 예외가 발생했는지 여부를 확인 했습니까? –
'CreateAsync line'에 중단 점을 넣습니다. 신청서가 거기에서 정지합니다. Step Over 나 Step In 중 하나 인 경우 BadRequest ("계정을 등록 할 수 없습니다");'if 문에는 절대 도달하지 않습니다. 예외는 볼 수 없습니다. try/catch를 넣으면 동일한 동작을 보입니다. 그게 내가 이해하지 못하는 비트. –