【发布时间】:2015-06-23 11:03:25
【问题描述】:
我创建了 MVC 4 应用程序。 在那个应用程序中
如果用户忘记密码,我有办法向用户发送电子邮件 重置密码。
如果管理员想更改用户当前密码,我有办法向用户发送一封包含相关详细信息的电子邮件。
所以我在尝试发送电子邮件时遇到了同样的错误
我遇到如下错误
- 忘记密码方法出现错误
- 编辑用户方法出现错误
我在尝试发送电子邮件时似乎遇到了问题,我正在使用 asp.net Identity 会员资格
这是忘记密码方法的相关代码sn-p
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ForgotPassword(ForgotPasswordViewModel model)
{
if(ModelState.IsValid)
{
var username = await UserManager.FindByNameAsync(model.UserName);
var user = await UserManager.FindByEmailAsync(model.Email);
if (user != null && username != null)
{
var provider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("My_Application");
UserManager.UserTokenProvider = new Microsoft.AspNet.Identity.Owin.DataProtectorTokenProvider<ApplicationUser>(provider.Create("EmailConfirmation"));
var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
System.Net.Mail.MailMessage m = new System.Net.Mail.MailMessage(
........
这是编辑用户方法的相关代码sn-p
[HttpPost]
[CustomAuthorization(IdentityRoles = "Admin")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit_User(EditUserViewModel editUser)
{
try
{
if (ModelState.IsValid)
{
AspNetUser user = db.AspNetUsers.Find(editUser.Id);
if(editUser.Change == "Yes"){
String userId = editUser.Id;
String newPassword = editUser.NewPassword;
var provider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("My_Application");
UserManager.UserTokenProvider = new Microsoft.AspNet.Identity.Owin.DataProtectorTokenProvider<ApplicationUser>(provider.Create("EmailConfirmation"));
var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
System.Net.Mail.MailMessage m = new System.Net.Mail.MailMessage(
................................................
好像在同一个地方有问题,但还没弄明白
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-identity email-confirmation