&引用;“通用”;ASP.NET MVC 5中的OpenID

&引用;“通用”;ASP.NET MVC 5中的OpenID,openid,asp.net-mvc-5,Openid,Asp.net Mvc 5,我在ASP.NET MVC 5中使用了新的身份验证功能(我以前使用过DotNetOpenAuth) 我知道内置的Google提供程序使用OpenID[1](它工作得很好),但我想在进行身份验证时使用我自己的OpenID提供程序 不幸的是,我无法找到一个简单的方法来实现这一点,ASP.NET MVC 5的开箱即用的特性。我查看了Microsoft.Owin.Security.Google的源代码,基于此,似乎很有可能添加一个新的OpenID提供者 是否有一种更简单(可能已经内置)的方法向ASP.N

我在ASP.NET MVC 5中使用了新的身份验证功能(我以前使用过
DotNetOpenAuth

我知道内置的Google提供程序使用OpenID[1](它工作得很好),但我想在进行身份验证时使用我自己的OpenID提供程序

不幸的是,我无法找到一个简单的方法来实现这一点,ASP.NET MVC 5的开箱即用的特性。我查看了
Microsoft.Owin.Security.Google
的源代码,基于此,似乎很有可能添加一个新的OpenID提供者

是否有一种更简单(可能已经内置)的方法向ASP.NET MVC 5应用程序添加新的OpenID提供程序?或者我必须从头开始编写一个(新的Owin中间件)

[1]

[2] 我也处于同样的情况,我想答案是“不”

密钥类是实现Owin后端处理程序的Microsoft.Owin.Security.Google.GoogleAuthenticationHandler。它在AuthenticateCoreAsync中硬编码对的调用,以及在ApplyResponseChallengeAsync中硬编码属性交换请求。如果有更好的方法(即OpenID基类),我想他们肯定会使用它而不是硬编码这两个点。我假设微软由于日程安排的原因或感觉到的需求不足而没有将其通用化


我认为开源通用OpenID OWIN中间件将是一个很棒的NuGet包。

谢谢。我想在接下来的几周里,我会一直懒散地使用DotNetOpenAuth,也许有人会在这之前构建一个OpenId中间件;)我成功地将谷歌代码改为雅虎代码。我得到了DotNetOpenAuth为该帐户提供的相同的声明标识符,因此代码似乎概括得很好。我认为唯一具有挑战性的一点是,根据提供者将提供什么,像DNOO一样,对属性交换过程进行一般化。