में लॉगिंग से पुष्टि किए गए ईमेल के बिना उपयोगकर्ताओं को रोकें मेरे पास एक एमवीसी और एक वेब एपीआई प्रोजेक्ट है, जो एएसपी.नेट एमवीसी वेब एपीआई पहचान (ओविन सुरक्षा) का उपयोग करके प्रमाणीकृत है।एएसपी.नेट एमवीसी वेब एपीआई पहचान (ओविन सुरक्षा)
मैं Register
समारोह है कि ठीक से काम करता करने के लिए एक ईमेल पुष्टि जोड़ा है, लेकिन मैं प्रवेश करने के पहले अगर emailConfirmed = true
जाँच करने के लिए कैसे सुनिश्चित करें कि कोई वेब एपीआई पहचान पर एक स्पष्ट लॉग इन समारोह है वहाँ क्योंकि, यह अंतर्निहित है नहीं कर रहा हूँ।
मुझे पता है कि माइक्रोसॉफ्ट के पास प्रमाणीकरण कार्यक्षमता को गहराई से encapsulate करने का एक अच्छा कारण है, लेकिन यह हासिल करने का कोई तरीका नहीं है?
कृपया सलाह दें।
यह मेरा रजिस्टर समारोह है:
[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();
}
वेब एपीआई के लिए टोकन आधारित प्रमाणीकरण का उपयोग करें। टोकन का उपयोग करके आप उपयोगकर्ता खाते के साथ अनुरोध जोड़ सकते हैं। एक बार जब आप उपयोगकर्ता को टोकन के माध्यम से सत्यापित करते हैं तो आप 'user.emailconfirmed' तक पहुंच सकते हैं जैसे कि आप एमवीसी – Nkosi
में लॉग इन कार्यक्षमता है जो टोकन का उपयोग करके पूरी तरह से काम करता है, मेरा सवाल यह है कि मैं कहां से जोड़ूं- अगर 'user.emailconfirmed 'क्योंकि पहचान 2 पर लॉगिन फ़ंक्शन नहीं है, यह अंतर्निहित है .. – user3378165
यह आपकी लॉगिन कार्यक्षमता का हिस्सा होना चाहिए। अन्यथा आप इसे हमेशा प्रमाणीकरण फाइलर – Nkosi