Mam projekty MVC i web API, uwierzytelniane przy użyciu ASP.NET MVC Web API Identity (OWIN Security).Uniemożliwianie użytkownikom bez potwierdzonego adresu e-mail logowania się w ASP.NET MVC Web API Identity (OWIN Security)
dodałem potwierdzenie e-mail do funkcji Register
który działa poprawnie, ale nie jestem pewien, jak sprawdzić, czy emailConfirmed = true
przed zalogowaniem się, ponieważ nie ma to wyraźny Logowanie funkcja Web API na tożsamość, to niejawna.
Wiem, że Microsoft ma dobry powód, aby głęboko enkapsulować funkcję autoryzacji, ale czy nie ma sposobu, aby to osiągnąć?
Prosimy o radę.
To jest moja funkcja Rejestracja:
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
if (!result.Succeeded)
{
return GetErrorResult(result);
}
try
{
var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = new Uri(Url.Link("ConfirmEmailRoute", new { userId = user.Id, code = code }));
var email = new Email();
email.To = user.Email;
email.From = "[email protected]";
email.Subject = "Please confirm your account";
email.Body = "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>";
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var data = JsonConvert.SerializeObject(email);
WebClient client = new WebClient();
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
var resp = client.UploadString(@"http:...", data);
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
return Ok();
}
Uwierzytelnianie oparte na tokenach dla interfejsu API. przy użyciu tokena można powiązać żądanie z kontem użytkownika. gdy zweryfikujesz użytkownika za pomocą tokena, możesz uzyskać dostęp do 'user.emailconfirmed', tak jak w MVC – Nkosi
Mam funkcjonalność logowania, która działa idealnie za pomocą tokena, moje pytanie brzmi: gdzie powinienem dodać kontrolę- jeśli' user.emailconfirmed 'ponieważ nie ma funkcji logowania na tożsamości 2, jest to niejawne .. – user3378165
To powinno być częścią twojej funkcji logowania. W przeciwnym razie możesz zawsze sprawdzić to w filtrze uwierzytelniającym. – Nkosi