Asp.Net身份SMS验证令牌曾经无效

Asp.Net身份SMS验证令牌曾经无效,asp.net,asp.net-identity,Asp.net,Asp.net Identity,我尝试用ASP.Net身份验证电话号码 以下是我的代码生成: public async Task<JsonResult> SendVerifyPhoneNumber() { var user = await this.UserManager.FindByIdAsync(User.Identity.GetUserId<int>()); if (user != null) { if

我尝试用ASP.Net身份验证电话号码

以下是我的代码生成:

        public async Task<JsonResult> SendVerifyPhoneNumber()
    {
        var user = await this.UserManager.FindByIdAsync(User.Identity.GetUserId<int>());
        if (user != null)
        {
            if (!string.IsNullOrWhiteSpace(user.PhoneNumber))
            {
                if (!await this.UserManager.IsPhoneNumberConfirmedAsync(user.Id))
                {
                    string number = user.PhoneNumber;
                    if (!string.IsNullOrWhiteSpace(number))
                    {
                        number = TelNumber.DecryptUserTelefon(number, ApplicationUser.AES_CRYPTO_KEY);
                    }
                    string code = await this.UserManager.GenerateChangePhoneNumberTokenAsync(user.Id, number);
                    string text = string.Format(ResourcesLocal.Resources_Manage_Index.TelefoncodeNachrichtBestaetigen, code);
                    bool result = Helper.Services.SmsService.SendSMS(SmSWarteschlangeCon, number, text);
                }
            }

            return Json(true);
        }

        return Json(false);
    }
公共异步任务SendVerifyPhoneNumber()
{
var user=wait this.UserManager.FindByIdAsync(user.Identity.GetUserId());
如果(用户!=null)
{
如果(!string.IsNullOrWhiteSpace(user.PhoneNumber))
{
如果(!等待此.UserManager.IsPhoneNumberConfirmedAsync(user.Id))
{
字符串编号=user.PhoneNumber;
如果(!string.IsNullOrWhiteSpace(数字))
{
number=TelNumber.DecryptUserTelefon(number,ApplicationUser.AES\u加密密钥);
}
string code=wait this.UserManager.GenerateChangePhoneNumberTokenAsync(user.Id,number);
string text=string.Format(ResourcesLocal.Resources\u Manage\u Index.telefoncodenachrychtbestaetigen,代码);
bool result=Helper.Services.SmsService.SendSMS(SmSWarteschlangeCon,number,text);
}
}
返回Json(true);
}
返回Json(false);
}
其中是我的代码捕获输入:

    public async Task<JsonResult> VerifyPhoneNumber(string code)
    {
        var user = await this.UserManager.FindByIdAsync(User.Identity.GetUserId<int>());
        if (user != null)
        {
            string number = user.PhoneNumber;
            if (!string.IsNullOrWhiteSpace(number))
            {
                number = TelNumber.EncryptUserTelefon(number, ApplicationUser.AES_CRYPTO_KEY);
            }
            var result = await this.UserManager.ChangePhoneNumberAsync(
                        user.Id, number, code);
            if (result.Succeeded)
            {
                user = await this.UserManager.FindByIdAsync(user.Id);
                if (user != null)
                {
                    await this.SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                }
                return Json(true);
            }

        }
        return Json(false);
    }
公共异步任务VerifyPhoneNumber(字符串代码)
{
var user=wait this.UserManager.FindByIdAsync(user.Identity.GetUserId());
如果(用户!=null)
{
字符串编号=user.PhoneNumber;
如果(!string.IsNullOrWhiteSpace(数字))
{
number=TelNumber.EncryptUserTelefon(数字,应用程序用户.AES\u加密密钥);
}
var result=等待this.UserManager.ChangePhoneNumberAsync(
用户Id、号码、代码);
if(result.successed)
{
user=wait this.UserManager.FindByIdAsync(user.Id);
如果(用户!=null)
{
等待这个.SignInManager.SignInAsync(user,isPersistent:false,rememberBrowser:false);
}
返回Json(true);
}
}
返回Json(false);
}
但每次结果都会失败,并带有“无效令牌”,即使代码相同且在几秒钟内给出


有什么想法吗?

1。你是如何接待的?2.您是否在
web.config
中指定了
machinekey
?1)您对我的托管方式的意思是什么?2) yesAzure网站或其他云提供商?两者都不是,只是一个普通的IIS Web服务器