0

Я установил OWIN в приложении ASP.NET MVC (включая подтверждение по электронной почте). Когда создается учетная запись, я получаю электронное письмо с ссылкой для подтверждения моей электронной почты. Когда я перехожу к ссылке, я получаю ошибку «Недопустимый токен».ASP.NET Identity 2 - UserManager.ConfirmEmail не работает в процессе производства

Если я возьму ту же самую ссылку и вместо этого измените домен на точку на localhost во время отладки проекта, письмо подтвердится просто отлично.

Проект развертывается на Azure Web Site (который я не могу удаленно отлаживать). Я бросил в код, чтобы отправить мне письмо по электронной почте, когда подтверждение не удается (так что я могу видеть userId и код, который он пытался подтвердить), и я проверил, что код, который он пытается проверить с помощью Azure, совпадает с код, созданный для этого пользователя. Это не похоже на какие-либо проблемы с кодированием или что-то в этом роде.

У меня есть вещи, основанные на огромном количестве, и выходят пустым. И поскольку я не могу удаленно отлаживать проблему, когда это происходит (на веб-сайте Azure), я почти не из идей.

Что здесь может быть не так?

+0

Фактически, вы можете отлаживать AWS: http://blogs.msdn.com/b/webdev/archive/2013/11/05/remote-debugging-a-window-azure-web-site-with- visual-studio-2013.aspx – trailmax

+0

Спасибо! Это было действительно полезно. –

ответ

1

ОК, вот несколько вещей, чтобы попробовать.

Если у вас есть другой домен, генерирующий cookie, чем подтверждение, вам нужно разделить машинный ключ между ними.

Если вы используете DpapiDataProtectionProvider() в качестве поставщика услуг, возможно, проблема связана с тем, что имя вашего пула приложений неизвестно. Вы должны настроить его по-разному при запуске, а затем использовать имя пула приложений, которое будет установлено в ваших настройках .. как-то! Мне не нужно было это делать, потому что я использую aws и могу просто установить имя пула приложений. Вам также необходимо установить для параметра LoadUserProfile приложения значение true.

Надеюсь, что это поможет!

+1

Для уточнения мне нужно было предпринять два действия. Во-первых, установите свойство CookieDomain на моем CookieAuthenticationOptions (в Startup.Auth.cs), а также установите MachineKey для обоих приложений. –