在Web API 2中,您过go 可以通过如下中间件设置OAuth授权服务器,从而创建一个端点来发布令牌:

//Set up our auth server options.
var OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {
                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider()
            };

 // Sets up the token issue endpoint using the options above
 app.UseOAuthAuthorizationServer(OAuthServerOptions);

也许我错过了它,但我正试图找出如何在ASP中实现这一点.净核心.我已经查看了源代码(https://github.com/aspnet/Security),但我没有看到任何类似的内容.有没有新的方法来实现这一点?我需要创建一个控制器并自己做吗?

我知道如何通过中间件设置OAuth身份验证,但这涉及到授权部分,在授权部分,我从API发出声明.

推荐答案

编辑(2021年1月28日):AspNet.安全OpenIdConnect.作为3.0更新的一部分,服务器已合并为OpenIddict.要开始使用OpenIddict,请访问documentation.openiddict.com.


不要浪费时间在ASP中寻找OAuthAuthorizationServerMiddleware替代方案.NET内核,ASP.NET团队只是决定不移植它:https://github.com/aspnet/Security/issues/83

我建议大家看看AspNet.Security.OpenIdConnect.Server,这是Katana 3附带的OAuth2授权服务器中间件的高级分支:有一个OWIN/Katana 3版本,还有一个ASP.NET核心版本,支持两个完整版本.NET框架和.净核心.

https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server

ASP.NET Core 1.x:

app.UseOpenIdConnectServer(options =>
{
    options.AllowInsecureHttp = true;
    options.TokenEndpointPath = new PathString("/token");
    options.AccessTokenLifetime = TimeSpan.FromDays(1);
    options.TokenEndpointPath = "/token";
    options.Provider = new SimpleAuthorizationServerProvider();
});

ASP.NET Core 2.x:

services.AddAuthentication().AddOpenIdConnectServer(options =>
{
    options.AllowInsecureHttp = true;
    options.TokenEndpointPath = new PathString("/token");
    options.AccessTokenLifetime = TimeSpan.FromDays(1);
    options.TokenEndpointPath = "/token";
    options.Provider = new SimpleAuthorizationServerProvider();
});

要了解更多关于这个项目的信息,我建议阅读http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/.

祝你好运

Asp.net相关问答推荐

ASP.NET多行查询文本框中的多个名称并将结果添加到单个网格视图

设置主键时KeyAttribute属性不起作用

如何在 Javascript 中获取 C# 枚举

带有模型的 mvc 上传文件 - 第二个参数发布的文件为空

IE10 SCRIPT5009:__doPostBack未定义

是否可以在没有那些 .svn 文件夹的情况下从 subversion 签出文件?

使用会话变量有多安全 - asp.net / c#

ASP.NET Core 1.0 ConfigurationBuilder().AddJsonFile("appsettings.json");找不到文件

Web api 不支持 POST 方法

__doPostBack 未定义

GridView 与嵌套类的属性绑定

ASP.NET 上的 WebSockets 教程

缩小 ASP.NET 应用程序的 Html 输出

ASP.NET IIS Web.config [内部服务器错误]

ASP.NET MVC Url Route 支持(点)

如何获取程序集的最后修改日期?

在资源文件中使用 HTML

脚本管理器控制实际上是做什么的?

global.asax 中的 Application_Error 未捕获 WebAPI 中的错误

错误处理(向客户端发送 ex.Message)