2013-04-26 1 views
1

우리는 서로 다른 시스템 (거의 모든 시스템이 DNN 시스템이 아님) 간의 인증 및 권한 부여를 처리 할 수있는 단일 사인온 시스템을 설정하고 있습니다.SSO 시나리오에서 DotNetNuke 암호를 모른 채 어떻게 누군가를 DotNetNuke에 로그인 할 수 있습니까?

사용자가 인증 토큰을 사용하여 DotNetNuke 시스템으로 리디렉션하는 중앙 인증 시스템에 의해 링크가 제공된다는 아이디어가 있습니다. 그런 다음 해당 인증 토큰을 가져와 합법적인지 확인한 후 DNN에 해당 사용자를 기록해야합니다. 이 워크 플로의 문제점은 사용자의 암호를 모른다는 것입니다. 나는 그들의 암호가 DNN/Asp.net에 무엇을 모르는 경우

var portalSettings = PortalSettings.Current; 
UserController.UserLogin(portalSettings.PortalId, username, password, string.Empty, portalSettings.PortalName, ip, ref loginStatus, true); 

이 분명히 작동하지 않습니다 : 나는 정의 로그인 인터페이스를 만들 때

이전

, 나는 호출에 의해 사용자가 로그인 폼 인증 시스템.

이 시스템은 새로운 시스템이 아니며 현재 SSO가없는 프로덕션 환경에서 사용되는 시스템이므로 모든 사용자의 암호를 "pass1234"로 설정하고 SSO 방법을 통해서만 로그인하도록 설정할 수는 없습니다.

정확한 비밀번호를 몰라도 DotNetNuke에 사용자로 로그인하도록하려면 어떻게해야합니까?

답변

3

"UserInfo"개체를 사용하는 UserController에 과부하가 추가로 발생합니다.

UserController.GetUserByName을 사용하여 시스템에서 실제 사용자를 얻은 다음 해당 객체를 Userlogin 방법으로 전달하면됩니다.

+0

잘 부탁드립니다. 감사! – KallDrexx