2012-03-01 2 views
3

DNN (DotNetNuke)에 대한 사용자 정의 로그인 컨트롤을 만들었습니다. 이제 잊어 버린 암호 기능을 구현하려고합니다. 나는 코드를 사용하여 데이터베이스에서 암호를 검색 할 수 있어요 :비밀번호 찾기 : DotNetNuke의 사용자에게 이메일을 보내려면 어떻게해야합니까?

UserInfo uInfo = UserController.GetUserByName(this.PortalId, userName); 
if (uInfo != null) 
{ 
    string password = UserController.GetPassword(ref uInfo, String.Empty); 
} 

내가 DNN를 사용하여 사용자에게 검색 암호를 송신 할.

도움이 될 것입니다.

+0

내가 알기로는 사용자 암호를 보내지 않는 것이 좋습니다 (해시해야하므로 검색 할 필요가 없습니다). 암호를 재설정 할 수있는 웹 페이지 링크를 보내십시오. – Thaven

+0

요구 사항은 나는 다른 옵션을 남기지 않고 이메일로 보내기 만한다. 도움을 받으실 수 있습니다. –

+0

@palakmehta - DNN은 해킹 또는 암호화 방법을 사용하여 사용자의 비밀번호를 어떻게 보호합니까? 그 해시 방법을 원한다면 당신이 원하는 것은 불가능합니다. 암호화 방법이 있다면 가능합니다. 사용자의 비밀번호를 보내는 것은 좋은 생각이 아니므로 누구도 비밀번호를 잊어서는 안되기 때문에 웹 사이트의 보안을 위험에 빠뜨릴 수 있습니다. 일반 사용자의 암호를 검색 할 수 있으면 관리자의 계정도 검색 할 수 있습니다. 보안 소금으로 암호를 해싱하는 것은 사용해야하는 유일한 방법입니다. 나는 DNN 개발자가 이것을 잘 알고 있습니다. –

답변

1

이메일을 통한 암호 전송은 큰 보안 취약점으로 간주되며 은 실제로는 권장되지 않습니다. 당신은 여전히하지만이 기능이 필요한 경우

, 난 당신이 단순히 SendMail 또는 SendEmail 방법을 통해 이메일을 전송하여이 작업을 수행 할 수 있습니다 같아요

DotNetNuke.Services.Mail.Mail.SendEmail() 
DotNetNuke.Services.Mail.Mail.SendMail() 

SendMail 방법은 SendEmail 방법보다 더 많은 옵션/매개 변수를 제공합니다. 매개 변수 이름은 해당 메서드를 사용할만큼 충분히 설명이 있어야합니다.

+0

나는 같은 대답을 쓰려고했습니다. @mnemcik. 감사합니다. –

+0

시간 절약을 위해 답을 수정해야합니다. 올바른 참조는 실제로 DotNetNuke.Services.Mail.Mail.SendMail()과 DotNetNuke.Services.Mail.Mail.SendEmail()입니다 (추가 .mail에주의하십시오) –

+0

업데이트 됨, 감사합니다. –

1

사용자에게 암호를 보내는 가장 간단한 방법은 DotNetNuke.Services.Mail.Mail.SendMail 과부하 (UserInfo, MessageTypePortalSettings)를 호출하는 것입니다. 사용자는 MessageType. PasswordReminder을 전달할 수 있으며 나머지는 DNN이 처리합니다.

그렇다면 군중과 함께 switch to using hashed passwords이 훨씬 더 유용 할 수 있다고 말하면서이 기능을 불가능한 기능 요청으로 간주합니다 (대신 암호 재설정 기능으로 수행해야 함).

관련 문제