我有一个ASP .NET Core应用程序,当前正在为JWT使用身份验证架构,在该应用程序中,它以JWT的形式检查Bearer令牌的“授权”标头,然后从中建立身份。 这是我们要在此服务上使用的主要身份验证架构,但是我想使用基本身份验证来代替一个MVC Controller端点。 该端点将受到我们无法控制的客户端的WebHook的攻击。 该第三方客户端使用基本身份验证作为唯一的身份验证方法,因此我们不得不使用它。

经过一番谷歌搜索后,ASP.NET Core似乎本身不支持“基本身份验证”,因为它存在漏洞,但是我们需要使用它,因为这是我们第三方webhook客户端支持的所有功能。

在阅读了有关MSDN上的身份验证和授权的文档之后,我对如何轻松配置它感到困惑。 看起来似乎很简单,但是这里有很多我以前没有使用过的概念,例如AuthorizationHandlersPoliciesAuthenticationMiddleware等。另一方面,我不确定如何实现,因此这是唯一的途径使用此身份验证架构。

有人能指出我正确使用ASP .NET中的哪种结构来在单个路由上实施Basic Auth的正确方向。 最好是我可以在route方法上使用Attribute来指示它应使用Basic Auth,如下所示:

[HttpGet]
[BasicAuthentication]
public async Task<IActionResult> Test([FromBody] string foo)
{
     return new OkResult();
}

要么

[HttpGet]
[Authorize("Basic")]
public async Task<IActionResult> Test([FromBody] string foo)
{
     return new OkResult();
}

我只是不确定从哪里开始

  ask by Matt Hintzke translate from so

本文未有回复,本站智能推荐:

3回复

ASP .NET Core 3.1 MVC 中特定路由的自定义中间件(或授权)

在我的 ASP .NET Core 3.1 MVC 应用程序中,我像这样使用端点路由 因此,浏览到 /access,启动 Access 操作,应用程序会在其中检查用户是否符合某些访问要求。 现在我更喜欢在自定义中间件(或可能是自定义授权属性)中进行此检查,而不是在控制器中进行检查。 所以我的
1回复

ASP.NET 5(vnext)自定义身份验证中间件

我想学习所有有关asp.net的知识。 而我现在想掌握的是asp.net中间件。 我想创建一个简单的中间件,该中间件可以通过提供一些声明来进行身份验证。 不幸的是,我在网上找不到关于这个主题的很多东西。 基本上我以为我需要做的就是这样: 不幸的是,这似乎使整个应用程序崩溃
4回复

ASP.Net-Core 中的自定义身份验证

我正在开发一个需要与现有用户数据库集成的 Web 应用程序。 我仍然想使用[Authorize]属性,但我不想使用 Identity 框架。 如果我确实想使用 Identity 框架,我会在 startup.cs 文件中添加如下内容: 我假设我必须在那里添加其他东西,然后创建某种实现特定接口的类
1回复

Asp.Net核心自定义身份验证中间件方案

我的项目在相同的解决方案中具有前端和API,因此我正在构建自定义身份验证中间件,该中间件旨在仅授权API控制器,因为前端控制器使用身份。 我像这样在Startup.cs上为Identity设置AutomaticAuthenticate选项为false 对于我的自定义中间件,我实现了
1回复

多种身份验证中间件

美好的一天 我正在将API从使用中移出: 用于验证令牌,以使用IdentityServer。 但是,我还希望能够使用上述中间件来验证以前发行的所有令牌。 因此,首先,我将上面的代码替换为以下代码(IdentityServer3.AccessTokenValidation
1回复

如何在ASP.NET核心中间件中强制执行实际的身份验证工作流

我想将一些基于身份验证的用户的应用程序上下文注入执行上下文中,以便业务/服务层可以透明地使用它。 我打算使用中间件进行设置。 启动示例代码为 不幸的是,在我的自定义中间件中,HttpContext.User.Identity.IsAuthenticated仍然为false。 命中M
1回复

解析中间件中的请求标头属性,用于特定路由 - ASP.NET CORE

在下面的代码示例中可以看到,request body 和 user-agent 是方法的两个不同参数,我们在收到它们后将 user-agent 分配到我们解析的 body 对象中。 之前使用中间件将用户代理分配到我们的“主体对象”中的正确方法是什么。 这个想法是只有我们的“LaunchReque
2回复

如何从ASP.NET Core 2.0中的自定义中间件请求身份验证

我有两种自定义的ASP.NET Core中间件:一种用于身份验证(注册自己的身份验证方案),另一种用于某些业务工作。 如何在另一个中间件中使用身份验证中间件? 我可以像这样在MVC中轻松使用身份验证: 我还可以提供自己的AuthenticationSchemeProvider以根