Yahoo DotNetAutho SSO Login: запретить Yahoo создавать всплывающие окна - PullRequest
0 голосов
/ 18 апреля 2011

Я использую библиотеку DotNetOpenAuth для создания единого входа для Google и Yahoo.Я перенаправляю к провайдеру программно, используя Request.RedirectToProvider (), когда пользователь нажимает на мою LinkButton (я использую пользовательский элемент управления для входа).

Это прекрасно работает для Google и Yahoo во всех браузерах.Проблема в том, что Yahoo, кажется, думает, что он открывается во всплывающем окне и изменяет размер всего окна.

Как мне установить тип интерфейса в DotNetOpenAuth, чтобы предотвратить это поведение?UIModes только имеет режим Popup?

Редактировать: На самом деле я не использовал расширение UIRequest.Это было частью моих усилий по отладке.

Код запроса следующий:

Dim OpenIDEndpoint As String = WellKnownProviders.Yahoo.ToString, OpenID As OpenIdRelyingParty = New OpenIdRelyingParty
    Dim LoginRequest As IAuthenticationRequest = OpenID.CreateRequest(OpenIDEndpoint)

    Dim Fields As ClaimsRequest = New ClaimsRequest()

    Fields.Email = DemandLevel.Require
    Fields.FullName = DemandLevel.Require
    Fields.Nickname = DemandLevel.Require
    Fields.BirthDate = DemandLevel.Require
    Fields.Gender = DemandLevel.Require

    LoginRequest.AddExtension(Fields)
    LoginRequest.RedirectToProvider()

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

Чувствовал, что это было лучше представлено в ответе, чем в комментарии:

Даже на странице входа в StackOverflow Yahoo есть та же проблема!

При проверке ссылки входа в SSO в Yahoo, я заметил, что вход в SSO в Yahooстраница, кажется, оптимизирована для всплывающих логинов.На странице есть такой JS:

<script type="text/javascript">
var isPopup = "true"; //<-- Note this
if (window.opener || isPopup) {
  var Dom = YAHOO.util.Dom;
  var Event = YAHOO.util.Event;

  (function() {
    if (Dom.getViewportWidth() < 500 || Dom.getViewportHeight() < 675) {
        window.resizeTo(500,675);
    }
  })();

...

Несмотря на то, что SSO не использует всплывающие окна, Yahoo, похоже, устанавливает значение isPopup в true.Я не знаю, является ли это ошибкой со стороны Yahoo, или какой-то ошибкой / ошибкой в ​​DotNetOpenAuth.Я бы приветствовал мнение Эндрю по этому поводу?

Обновление :

Странно, SSO съел мое обновление.

http://developer.yahoo.com/oauth/guide/oauth-userauth.html - Yahoo, видимооптимизировал свою страницу входа в систему единого входа ТОЛЬКО для всплывающих окон.Изменение размера окна, вероятно, является результатом этого.

0 голосов
/ 19 апреля 2011

Расширение пользовательского интерфейса строго для использования всплывающими окнами.Если вы не открываете страницу входа провайдера во всплывающем окне, не присоединяйте расширение UIRequest.

Я ожидаю, что это решит проблему изменения размера.

...