Ich versuche, eine Bestätigungs-E-Mail zu senden, wenn ein Benutzer sich zusammen mit dem generierten Token registriert. Token ist in Ordnung. Aber als E-Mail zu senden, ich diese Störung erhalte:ASP.NET Identity IUserEmailStore Fehler in MVC
System.NotSupportedException: Store does not implement IUserEmailStore<TUser>.
Und mein Code innerhalb Account in der Register-Methode sieht wie folgt aus: Es ist die SendEmailAsync ist() -Methode, die den Fehler verursacht:
if (result.Succeeded)
{
var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
ViewBag.Link = callbackUrl;
return View("DisplayEmail");
}
In meiner IdentityConfig.cs Datei, ich habe eine Klasse:
public class ApplicationUserManager : UserManager<ApplicationUser>
{
public ApplicationUserManager(IUserStore<ApplicationUser> store)
: base(store)
{
}
}
auch in meiner IdentityConfig.cs Datei, habe ich eine andere Klasse:
public class EmailService : IIdentityMessageService
{
public Task SendAsync(IdentityMessage message)
{
// Plug in your email service here to send an email.
SmtpClient client = new SmtpClient();
return client.SendMailAsync(ConfigurationManager.AppSettings["TranscriptEmailAddr"],
message.Destination,
message.Subject,
message.Body);
}
}
Bitte assistieren.
Hallo @ Henrique. Ja, ich verwende Microsoft.AspNet.Identity.EntityFramework, damit ich verstehe, dass ich den IUserStore nicht explizit implementieren muss. Was mich mehr beunruhigt, ist, dass ich ein Beispielprojekt heruntergeladen habe, indem ich es im Paket-Manager installiert habe: PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre. Dieses Projekt funktioniert einwandfrei und kann E-Mails senden, aber mein Projekt funktioniert nicht. –