#c# #asp.net #authentication #asp.net-membership #dotnetnuke
#c# #asp.net #аутентификация #asp.net-членство #dotnetnuke
Вопрос:
Я создал пользовательский элемент управления входом для dotnenuke. Сейчас я пытаюсь реализовать функцию «Забыли пароль», но я что-то упускаю. Я могу получить пароль по имени пользователя, но не могу найти, как отправить почту пользователю.
UserInfo ui= UserController.GetUserByName(this.PortalId, "JohnDoe");
string pass = UserController.GetPassword(ref ui, "");
Комментарии:
1. Что вы искали? Здесь есть много вопросов об отправке электронной почты с c # только по Stack Overflow.
2. Поэтому измените свой вопрос на «Как отправить электронное письмо из DotNetNuke?». «Я что-то пропустил» — не самый удачный вопрос.
3. Используете ли вы поставщика членства? Если это так, в нем есть встроенная функциональность для сброса паролей. Глядя на ваш код, кажется, подразумевается, что либо ваш пароль хранится в виде зашифрованных строк, либо — и это пугающий вариант — что вы храните их в виде открытого текста. В противном случае вы все равно не сможете получить пароль из базы данных. Пожалуйста, скажите мне, что вы не храните их в виде открытого текста.
4. Добавление к комментарию @Ira Rainey; пожалуйста, не отправляйте пользователю пароль в виде простого текста по электронной почте. 🙁 Это очень небезопасно, и вы рискуете, что ваш веб-сайт / приложение будет взломано.
5. @Jason и @Ira, по умолчанию DNN шифрует пароли (а не хэширует). Определенно не понятный текст, но и не супер потрясающий.
Ответ №1:
Посмотрите на DotNetNuke.Services.Mail.Mail
класс. В зависимости от того, что вы хотите, вам может просто понадобиться вызвать Mail.SendMail(user, MessageType.PasswordReminder, portalSettings)