Используя настройку ASP.Net MVC по умолчанию, как мне войти с помощью учетной записи Microsoft?
Почему я постоянно получаю "Приведенное значение для входного параметра" redirect_uri "недействительно."?
Мой сайт размещен в Azure. Я пытаюсь войти через кнопку входа в систему Microsoft. Я действительно не внес много изменений из стандартного шаблона ASP.Net MVC из коробки. Все, что я действительно изменил, это раскомментировать строку app.UseMicrosoftAccountAuthentication
и добавить clientId и clientSecret.
У меня неправильно настроен URL-адрес перенаправления?
Сайт: http://mysite.azurewebsites.net
URL-адрес перенаправления: http://mysite.azurewebsites.net/
Я где-то читал, что вам нужно указать URL-адрес переадресации в форме http://www.mysite.azurewebsites.net
. Может ли кто-нибудь подтвердить или опровергнуть это? Мне не нужен www в моей текущей настройке.
Я получаю следующее сообщение:
https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The предоставленное значение для входного параметра 'redirect_uri' недопустимо. Ожидаемое значение: https://login.live.com/oauth20_desktop.srf 'или URL, который соответствует URI редиректа, зарегистрированным для этого клиентского приложения. & state = SomeLongPossiblyEncryptedString
Это сообщение отображается на странице, возвращенной после попытки входа в систему:
Аккаунт Microsoft
Мы не можем выполнить ваш запрос
У Microsoft есть технические проблемы. Повторите попытку позже.
3/26/2014 Обновление: пока не повезло, вот некоторые снимки экрана моих настроек, если это помогает.
Основная информация
![enter image description here]()
Настройки API
![enter image description here]()
Это проблема на стороне Microsoft или я что-то не так?
Ответы
Ответ 1
Из MVC по умолчанию, что работает для меня (только что протестировано около 5 минут назад) для URL-адреса переадресации,
http://testcrap.azurewebsites.net/ signin-microsoft
Вся документация, которую я нашел, говорит, чтобы использовать
http://testcrap.azurewebsites.net/ login/microsoftaccount
Но это не работает для меня...
sigin-microsoft делает
![enter image description here]()
ИЛИ, если это не работает, используйте что-то вроде firebug, чтобы посмотреть, как выглядит запрос к поставщику oauth, а затем все, что перенаправляет внутри этого запроса, - это то, что вам нужно использовать.
![enter image description here]()
Ответ 2
Для веб-приложения вам нужно установить URL-адрес перенаправления в Центр разработки Live Connect.
В настройках API- > URL-адресов переадресации необходимо установить:
http://www.yourdomain.com/signin-microsoft
Надеюсь, что это полезно:)
Ответ 3
Вам необходимо указать URL-адрес перенаправления в Центр разработки Live Connect. Я прикрепил скриншот. Это часть проверки приложения для предотвращения вредоносных приложений.
![Redirect URL - Microsoft Account]()
Ответ 4
Кажется, Microsoft снова изменит URL. Это то, что работает для меня
.auth/Войти/microsoftaccount/обратный вызов
Мой URL-адрес перенаправления
https://yyyyyyyy.azurewebsites.net/.auth/login/microsoftaccount/callback
Чтобы получить этот URL-адрес, используйте Fiddler или любой инструмент отладки http и найдите запрос на login.live.com. Redirect_url находится в строке запроса.
https://login.live.com/oauth20_authorize.srf?client_id=00000000551716B9&redirect_uri=https%3A%2F%2Fyyyyyyyyyy.azurewebsites.net%2F.auth%2Flogin%2Fmicrosoftaccount%2Fcallback&response_type=code&scope=wl.basic+wl.offline_access+wl.signin+wl.birthday+wl.calendars+wl.calendars_update+wl.contacts_birthday+wl.contacts_create+wl.contacts_calendars+wl.contacts_photos+wl.contacts_skydrive+wl.emails+wl.events_create&state=nonce%3Dfe7e6b678b8844f48f079cceadf1f426_20151206145117%26redir%3D%2F
Ответ 5
Поскольку мне нужно еще 3 точки репутации, чтобы написать комментарий к вашему сообщению, я должен спросить его здесь. Извините.
Получаете ли вы эту ошибку, проверяя ее на реальном домене или проверяя ее с вашего локального хоста?
Если второй случай, вам нужно настроить запись DNS для фиктивного имени хоста в вашем локальном файле хоста, который указывает на 127.0.0.1, и использовать это фиктивное имя при регистрации в режиме реального времени. Кроме того, ему нужен IIS, а не IIS Express.
Не уверен, что это чистый путь, и если он завершен, но он самый дальний, который я получил при опробовании нового поставщика ASP.NET Identity. К сожалению, в официальной документации есть только пример, показывающий, как использовать его с Google...
Я тоже был бы признателен за чистый ответ на этот вопрос.
Ответ 6
Перенаправленные URI являются "чувствительными к SSL", и вы, вероятно, всегда хотите версию SSL.