ASP.NET MVC 5中的"通用"OpenID

Han*_*fer 13 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

Jef*_*ser 5

我处于相同的情况,我认为答案是"不".

关键类是Microsoft.Owin.Security.Google.GoogleAuthenticationHandler,它实现了OWIN后端处理程序.在其AuthenticateCoreAsync中调用https://www.google.com/accounts/o8/ud以及在ApplyResponseChallengeAsync中对Attribute eXchange请求进行硬编码很难编码.如果有更好的方法(即OpenID基类),我假设他们肯定会使用它而不是硬编码这两个点.我假设微软没有因为进度原因或认为缺乏需求而使其成为通用的.

我认为一个开源的通用OpenID OWIN中间件将是一个伟大的NuGet包.