2015-10-28 6 views
0

У меня есть ASP.Net MVC 5 с использованием Identity Framework и OWIN, чтобы пользователи могли войти в систему через OAuth.Как изменить параметры запроса на URL-адрес запроса аутентификации OAuth при использовании Microsoft Katana?

В частности, я сейчас работаю над аутентификацией с Twitter, и я хотел бы добавить force_login=true, чтобы пользователи могли выбирать, какую учетную запись использовать, а не автоматически проверять подлинность с учетной записью, в которой они уже вошли. твиттер с.

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

Microsoft.Owin.Security.Twitter/TwitterAuthenticationHandler.cs

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

Есть ли другой подход, который мне не хватает?

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

+1

В приложении ApplyResponseChallengeAsync вы пытались подключиться к 'Options.Provider.ApplyRedirect (redirectContext)'? – Tratcher

+0

Извините, если я не был ясен в своем вопросе. Я не ищу, как изменить этот код, я ищу, как не создавать собственную версию этого кода, а затем синхронизировать его с любыми изменениями, которые Microsoft делает в будущем. – AndyJ

+0

О, извини, я понимаю, что ты имеешь в виду! Я проверю это сейчас. – AndyJ

ответ

1

Вы можете подключиться к Options.Provider.ApplyRedirect (redirectContext), и он будет вызван из ApplyResponseChallengeAsync.

+0

Свойство «TwitterAuthenticationOptions.Provider» имеет свойство «OnApplyRedirect», которое принимает делегат, который будет выполнять перенаправление. Я заменил его перенаправлением, которое изменяет URL. OnApplyRedirect = async (context) => { context.Response.Redirect (context.RedirectUri + "& force_login = true"); } – AndyJ