在 ASP5 中实现 OpenID

Implementing OpenID in ASP5

我正在尝试将 Steam OpenID 集成到 ASP5/MVC6 站点中。现有的 OpenID 库不适用于 ASP5,因为它们似乎依赖于不存在的 HttpContext。

这是我能找到的唯一兼容库:

 "Microsoft.AspNet.Authentication.OpenIdConnect": "1.0.0-beta4",

我在 Startup.ConfigureServices 中这样配置它:

    public void ConfigureServices(IServiceCollection services)
    {
        ..
        services.ConfigureOpenIdConnectAuthentication(options =>
        {
            options.Authority = "http://steamcommunity.com/openid";
            options.ClientId = "[ClientIDHere]";
        });
    }

并在 Startup.Configure 中:

app.UseOpenIdConnectAuthentication();

我真正的问题很简单,我如何在我的应用程序中实际使用这个库来创建 OpenID 请求?该库似乎不存在文档(当然,典型的测试版)并且示例很少。

更新:ASP.NET5 的 Steam 身份验证提供程序现已上线。您可以访问https://github.com/aspnet-contrib/AspNet.Security.OpenId.Providers了解更多信息。


遗憾的是,Steam 依赖于 OpenID 2.0,ASP.NET 不支持(也不会)5. 本机只有 OAuth2 和 OpenID Connect(基于 OAuth2 而不是在 OpenID 2.0 上)由 ASP.NET 附带的默认身份验证中间件支持 5.

我猜您之前使用的是 OWIN/Katana 社区开发的 Steam 供应商:https://github.com/RockstarLabs/OwinOAuthProviders/tree/master/Owin.Security.Providers/Steam 大多数这些提供程序 - 基于 OAuth2 - 将作为 aspnet-contrib 项目的一部分移植:https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers.

移植 OpenID 2.0 提供程序不在近期计划中,但您可以在 https://github.com/aspnet-contrib/AspNet.Security.OpenId.Providers/issues 上打开一个新线程并为 Stream 提供程序投票。