2013-04-26 2 views
1

Мы создаем систему единого входа для проверки подлинности и авторизации между нашими различными системами (почти все из которых не являются системами DNN).Как я могу зарегистрировать кого-то в DotNetNuke, не зная пароля DotNetNuke в сценарии единого входа?

Идея состоит в том, что пользователю будет предоставлена ​​ссылка центральной системой аутентификации, которая перенаправляет их в систему DotNetNuke с помощью токена аутентификации. Затем мне нужно взять этот токен аутентификации, проверить, что он является законным, и если так регистрировать этого пользователя в DNN. Проблема с этим документооборотом заключается в том, что я понятия не имею о пароле пользователя.

Раньше, когда я создал пользовательские интерфейсы для входа Я вошел пользователь в позвонив по телефону:

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

Это, очевидно, не будет работать, если я не знаю, что их пароль в DNN/Asp.net системы аутентификации форм.

Поскольку это не новая система, а система, используемая в настоящее время в производстве без SSO, я не могу просто установить пароль каждого пользователя «pass1234» и потребовать их входа только через метод SSO.

Как я могу сообщить DotNetNuke, чтобы войти в систему как пользователь, не зная своего точного пароля?

ответ

3

Существует дополнительная перегрузка для UserController, которая принимает объект «UserInfo».

Используйте UserController.GetUserByName для того, чтобы получить фактического пользователя от системы, тогда вы можете передать этот объект в метод Userlogin, и вы готовы к работе!

+0

Хорошо, я пропустил это. Благодаря! – KallDrexx

Смежные вопросы