И OpenID, и обычный логин на одном и том же View? - PullRequest
4 голосов
/ 11 июня 2010

Есть ли сайт, который показывает и OpenID, и обычный логин в одном представлении?Большинство сайтов имеют либо реализацию OpenID, либо реализацию обычного входа в систему в разных представлениях.

Я пытался это сделать, но, похоже, мой код очень грязный, при использовании OpenID передается пустое имя пользователя и пароль, в противном случае OpenID будетбыть пустым, но передал имя пользователя и пароль.

Но тогда я теряю способность проверять, правильно ли пользователь ввел правильные значения, есть ли лучший способ для меня это сделать?

Спасибомного

Ответы [ 2 ]

1 голос
/ 13 июня 2010

Вы смотрели на NerdDinner ? Это пример с открытым исходным кодом, который включает экран двойного входа в систему, который вы запрашиваете. Он использует DotNetOpenAuth, поэтому его также легко применить к вашему сайту.

1 голос
/ 12 июня 2010

По запросу, вот сайт, который показывает и OpenID, и обычный логин / пароль для входа в систему в одном представлении: https://sourceforge.net/account/login.php

Когда вы создаете такую ​​страницу, неиспользуемые переменные формы совершенно нормально остаются пустыми. Это не делает ваш код грязным. Он просто представляет то, что сделал пользователь: он ввел текст в некоторые поля, а остальные оставил пустым.

Вы все еще можете проверить, что представленные значения верны; Вы просто должны добавить немного больше логики в свой контроллер. В псевдокоде это может выглядеть примерно так:

if openid_identifier != "":
    validate_openid( openid_identifier)
else:
    validate_password( username, password)

Стоит также отметить, что для поставщиков OpenID, которые, как известно, поддерживают его, вы можете использовать функцию выбора идентификатора OpenID 2.0 и предоставить простую кнопку вместо того, чтобы просить пользователя ввести свой OpenID. Подробнее см. в спецификации .

...