Подтвердить что ты не робот

"Общий" OpenID в ASP.NET MVC 5

Я играл с новыми функциями аутентификации в ASP.NET MVC 5 (ранее я использовал DotNetOpenAuth).

Я понимаю, что встроенный поставщик Google использует OpenID [1] (и он отлично работает), но я хочу использовать свой собственный поставщик OpenID при аутентификации.

К сожалению, я не смог найти простой способ выполнить это с помощью готовых функций ASP.NET MVC 5. Я просмотрел источник Microsoft.Owin.Security.Google и на его основе кажется вполне можно добавить нового поставщика OpenID.

Есть ли более простой (возможно, уже встроенный) способ добавления нового поставщика OpenID в приложение ASP.NET MVC 5? Или мне нужно писать с нуля (новое промежуточное ПО Owin)?

[1] http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on
[2] http://www.symbolsource.org/MyGet/Metadata/aspnetwebstacknightly/Project/Microsoft.Owin.Security.Google/2.0.1-rtw1-20924-641-dev/Release/.NETFramework,Version=v4.5/Microsoft.Owin.Security.Google

4b9b3361

Ответ 1

Я в той же ситуации, и я думаю, что ответ "нет".

Ключевым классом является Microsoft.Owin.Security.Google.GoogleAuthenticationHandler, который реализует обработчик бэкэнда OWIN. Он жестко кодирует вызов https://www.google.com/accounts/o8/ud в своем AuthenticateCoreAsync, а также жестко кодирует запрос атрибута атрибута в ApplicationResponseChallengeAsync. Если бы был лучший способ (т.е. Базовый класс OpenID), я предполагаю, что они наверняка использовали бы его вместо жесткого кодирования этих двух точек. Я предполагаю, что Microsoft не делала это родовым из-за причин расписания или предполагаемого отсутствия спроса.

Я думаю, что совместное ПО OpenID OWIN с открытым исходным кодом будет отличным пакетом NuGet.