我正在开发Web Api Asp.Net,因此我提供了恢复密码服务,如下所示:
服务
public string RecoveryGuid(string usuario, UsuarioRecuperacion user)
{
var usr = _usuarioService.Cargar(x => x.Cuenta == usuario);
var fechaExpiracion = DateTime.Now.AddDays(1);
user.UsuarioID = usr.ID;
user.FechaExpiracion = fechaExpiracion;
var token = user.Codigo = Guid.NewGuid().ToString();
user.Activo = true;
_dbset.Add(user);
_contexto.SaveChanges();
string page = "<a href ='" + GetBaseUrl() + "Cliente/#/cambiarContrasena.html?Token="+token+"'> Recovery Password</a>";
_emailService.EnviarCorreo(usuario, "Recover your Password",
"clic to unlock your account" + page);
return page;
}
我
正如您所看到的,我向用户发送了一封电子邮件,其中包含Cliente/#/cambiarContrasena.html
以及?Token="token"
令牌变量保存到此表中的数据库中,以便使用UserId恢复密码,所以我有例如:
UserId = 20
Token = 04309d96-4257-4383-bbde-5712ec6aa9cb
但现在我想知道如何在用户点击电子邮件时检索此令牌。在这种情况下,例如http://localhost:557/Cliente/#/cambiarContrasena.html?Token=04309d96-4257-4383-bbde-5712ec6aa9cb
我需要在我的服务中检测用户何时点击链接并获取令牌进入其他服务,例如:
public string CambiarContrasena()
{
var a= "";
//What I need to do there to get token
return a;
}