Asp.net mvc 5 ASP.NET Identity 2 GenerateEmailConfirmationTokenAsync(user.Id)生成的链接是否超时?

Asp.net mvc 5 ASP.NET Identity 2 GenerateEmailConfirmationTokenAsync(user.Id)生成的链接是否超时?,asp.net-mvc-5,asp.net-identity,email-confirmation,Asp.net Mvc 5,Asp.net Identity,Email Confirmation,我正在MVC5程序中使用最新的Identity 2软件包 注册用户时,在帐户控制器的注册方法中。它会向用户的电子邮件帐户发送一封电子邮件,其中包含一个链接,用于单击以验证帐户 我发现,如果我创建了一个虚拟用户,并立即检查我的电子邮件以注册它成功验证的帐户 如果我等待点击电子邮件中的链接,我得到的只是 错误。 处理您的请求时出错 此电子邮件链接是否超时?如果是这样的话,还有没有办法延长这个链接的超时时间?因为这里没有人提供答案,我会的。OP的问题是没有对生成的令牌进行URL编码 var code

我正在MVC5程序中使用最新的Identity 2软件包

注册用户时,在帐户控制器的注册方法中。它会向用户的电子邮件帐户发送一封电子邮件,其中包含一个链接,用于单击以验证帐户

我发现,如果我创建了一个虚拟用户,并立即检查我的电子邮件以注册它成功验证的帐户

如果我等待点击电子邮件中的链接,我得到的只是 错误。 处理您的请求时出错


此电子邮件链接是否超时?如果是这样的话,还有没有办法延长这个链接的超时时间?

因为这里没有人提供答案,我会的。OP的问题是没有对生成的令牌进行URL编码

 var code = Url.Encode(await UserManager.GenerateEmailConfirmationTokenAsync(userId))


如果您正在编码,请检查寿命。

因为这里没有人提供答案,我会的。OP的问题是没有对生成的令牌进行URL编码

 var code = Url.Encode(await UserManager.GenerateEmailConfirmationTokenAsync(userId))


如果您正在编码,请检查寿命。

根据默认标记,寿命为1天。提到了发生此问题的可能原因。。。令牌是Base64字符串。Base64字符串作为URL参数传递是不安全的,因为特殊字符可能会被浏览器错误地解释。所以您需要对它们进行url编码,以避免对令牌的错误解释:他是对的。令牌字符串转换为base64,然后在验证时从base64解码。我以前对默认令牌寿命的看法是错误的。编码字符串是否解决了问题?在过去的36个小时里,我一直在远离我的代码。当我明天回家的时候,我必须应用它,看看。我能够在我使用的模板文件中验证,标记代码不是url编码的。这可能就是为什么单击时电子邮件链接只是发回一个错误。根据默认标记,使用寿命为1天。提到了发生此问题的可能原因。。。令牌是Base64字符串。Base64字符串作为URL参数传递是不安全的,因为特殊字符可能会被浏览器错误地解释。所以您需要对它们进行url编码,以避免对令牌的错误解释:他是对的。令牌字符串转换为base64,然后在验证时从base64解码。我以前对默认令牌寿命的看法是错误的。编码字符串是否解决了问题?在过去的36个小时里,我一直在远离我的代码。当我明天回家的时候,我必须应用它,看看。我能够在我使用的模板文件中验证,标记代码不是url编码的。这可能就是为什么单击时电子邮件链接只是发回一个错误。