电子邮件确认令牌 - UserManager.ConfirmEmail仅适用于页面刷新

时间:2017-01-23 15:35:09

标签: asp.net-mvc azure asp.net-identity

我有一个奇怪的问题...我将新用户添加到我的系统中,然后他们会收到一个邀请,其中包含他们点击的链接以确认接受并设置密码。

我使用以下内容生成电子邮件中发送的令牌和URL:

string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

code = System.Web.HttpUtility.UrlEncode(code);

var callbackUrl = Url.Action("accept", "users", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);

电子邮件很好,我点击了链接。在我的接受'页面我说:

code = System.Web.HttpUtility.UrlDecode(code);

var result = UserManager.ConfirmEmail(userId, code);

不幸的是,它总是在我的实时站点上失败(在Azure App Services上托管)。 Localhost似乎工作。 更奇怪的是,当我刷新现场时,接受'页面然后工作?!

有没有人遇到过这个?希望如此!

修改 深入研究这个问题我有两件事情要做:

  1. 失败似乎归结为&user;' userId'为空,即使我可以在URL中看到它? var aspUser = await UserManager.FindByIdAsync(userId);
  2. 当它工作时(刷新后)我在提交时收到错误,告诉我表单不完整。 (我要求用户在此处输入并确认他们的密码 - 查看来源显示我在提交之前填写了所有字段)。

0 个答案:

没有答案