Я загрузил образец страницы входа с портала ACS для своего приложения, который представляет собой HTML-файл. Затем я настроил свое приложение с помощью WIF, и все заработало отлично.
Поскольку нам нужно обрабатывать и сохранять входящую строку запроса, чтобы эту строку запроса можно было использовать позже после входа пользователя в систему, нам нужно было переместить страницу входа в формате html на страницу aspx.
Проблема в том, что когда я меняю эмитента для WIF в файле web.config на файл aspx, он перестает работать. Когда это работает, это выглядит так:
<certificateValidation certificateValidationMode="None" />
<federatedAuthentication>
<wsFederation passiveRedirectEnabled="true" issuer="http://localhost:81/acstest/WebSiteAdvancedACSLoginPageCode.html" realm="http://localhost:81/acstest/" requireHttps="false" />
<cookieHandler requireSsl="false" />
</federatedAuthentication>
Но затем, когда я меняю его на свою страницу aspx, куда я только что переместил весь код на странице html, я даже не могу загрузить страницу:
<certificateValidation certificateValidationMode="None" />
<federatedAuthentication>
<wsFederation passiveRedirectEnabled="true" issuer="http://localhost:81/acstest/WebSiteAdvancedACSLoginPageCode.aspx" realm="http://localhost:81/acstest/" requireHttps="false" />
<cookieHandler requireSsl="false" />
</federatedAuthentication>
Когда я затем запускаю с настроенным файлом aspx, я вижу в скрипаче, что что-то не так, он пытается получить и продолжает получать «объект перемещен сюда:» Это запрос на получение:
GET http://localhost:81/acstest/WebSiteAdvancedACSLoginPageCode.aspx?wa=wsignin1.0&wtrealm=http%3a%2f%2flocalhost%3a81%2facstest%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252facstest%252fWebSiteAdvancedACSLoginPageCode.aspx&wct=2011-11-23T09%3a33%3a30Z HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: sv-SE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: localhost:81
Cookie: ACSChosenIdentityProvider-10001951=Google
В конце выдает исключение, что строка запроса слишком длинная. Ошибка и предупреждение запроса:
MODULE_SET_RESPONSE_ERROR_STATUS
URL-адрес авторизации имени модуля
Уведомление AUTHORIZE_REQUEST
HttpStatus 401
HttpReason неавторизованный
HttpSubStatus 0
ErrorCode Åtgärden har slutförts. (0x0)
ConfigExceptionInfo
Любая обратная связь или альтернативное решение приветствуются.