2016-10-10 50 views
1

我有以下功能,在过期的链接中重新生成确认电子邮件(以完成注册)。根据他的用户ID获取用户的电子邮件地址.net身份

[AllowAnonymous] 
    [HttpGet] 
    [Route("ResendConfirmationEmail")] 
    public async Task<IHttpActionResult> ResendConfirmationEmail(string userId = "") 
    { 
     if (string.IsNullOrWhiteSpace(userId)) 
     { 
      ModelState.AddModelError("", "User Id is required"); 
      return BadRequest(ModelState); 
     } 
     if (userId.GetHashCode() != null) 
     { 
      var code = await UserManager.GenerateEmailConfirmationTokenAsync(userId); 
      var callbackUrl = new Uri(Url.Link("ConfirmEmailRoute", new { userId, code = code })); 
      string subject = "Please confirm your account"; 
      string body = "Please confirm your account by clicking this : <a href=\"" + callbackUrl + "\">link</a>"; 
      SendEmail(?????, callbackUrl, subject, body); 
     } 
     return Ok(); 
    } 

我怎样才能从webUsers表中的用户的电子邮件基于他userid

+1

'UserManager'有一个叫做'FindByIdAsync' – tmg

回答

3

您可以从数据库中使用的UserManager的FindByIdAsync获取用户,然后获得的电子邮件

var user = await UserManager.FindByIdAsync(userId); 
var email = user.Email; 
+0

惊人的方法,完美地工作,谢谢! – user3378165

相关问题