ASP.NET MVC Web API Kimliği (OWIN Güvenliği) kullanılarak kimliği doğrulanmış bir MVC ve bir web API projeleri var. ASP.NET MVC Web API Kimliği (OWIN Güvenliği) oturum açma e-postası tarafından onaylanmadan kullanıcıların önlenmesi
düzgün çalıştığınıRegister
işlevine onay e-postası eklendi ama
o örtük, hiç Web API Kimlik üzerinde açık bir Girişi işlevi yoktur çünkü giriş yapmadan önce
emailConfirmed = true
olmadığını kontrol etmek emin değilim.
Microsoft'un yetkilendirme işlevini derinlemesine saklamak için iyi bir nedeni olduğunu biliyorum, ancak bunu başarmanın bir yolu yok mu?
Lütfen bildiriniz. araştırmalarda bir çok cevabı bulduk sonra
[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();
}
Web api için jeton tabanlı kimlik doğrulama kullanın. jetonu kullanarak bir isteği bir kullanıcı hesabıyla ilişkilendirebilirsiniz. Bir kez kullanıcı ile belirteci doğrulayın Eğer daha sonra MVC – Nkosi
içinde olduğu gibi 'user.emailconfirmed' erişebilirsiniz Ben iyi kullanarak çalışır giriş işlevselliği var, benim soru nereye-check-in user.emailconfirmed eklemek gerekir Çünkü kimlik 2'de oturum açma fonksiyonu yoktur, dolayısı ile örtülüdür .. – user3378165
Oturum açma işlevinizin bir parçası olmalıdır. Aksi takdirde, bir kimlik doğrulama denetleyicisinde ( – Nkosi