我尝试了 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 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 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
我处于同样的情况,我认为答案是“不”。
关键类是 Microsoft.Owin.Security.Google.GoogleAuthenticationHandler,它实现 OWIN 后端处理程序。很难对调用进行编码https://www.google.com/accounts/o8/ud https://www.google.com/accounts/o8/ud在其 AuthenticateCoreAsync 中以及在 ApplyResponseChallengeAsync 中对属性 eXchange 请求进行硬编码。如果有更好的方法(即 OpenID 基类),我假设他们肯定会使用它而不是对这两个点进行硬编码。我假设微软由于日程原因或认为缺乏需求而没有使其通用。
我认为开源通用 OpenID OWIN 中间件将是一个很棒的 NuGet 包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)