首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET核心2.1-如何返回不属于DefaultChallengeScheme的质询

.NET核心是一个跨平台的开发框架,用于构建各种类型的应用程序,包括Web应用程序、移动应用程序和桌面应用程序等。.NET核心2.1是.NET核心的一个版本,它引入了许多新功能和改进。

在.NET核心2.1中,要返回不属于DefaultChallengeScheme的质询,可以通过以下步骤实现:

  1. 首先,需要在Startup.cs文件中配置认证服务。在ConfigureServices方法中,添加以下代码:
代码语言:txt
复制
services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = "Scheme1";
    options.DefaultChallengeScheme = "Scheme2";
})
.AddScheme<CustomAuthenticationSchemeOptions, CustomAuthenticationHandler>("Scheme1", "Scheme1 Display Name")
.AddScheme<CustomAuthenticationSchemeOptions, CustomAuthenticationHandler>("Scheme2", "Scheme2 Display Name");

上述代码中,我们通过AddAuthentication方法配置了两个认证方案,分别是"Scheme1"和"Scheme2"。其中,DefaultAuthenticateScheme指定了默认的认证方案为"Scheme1",DefaultChallengeScheme指定了默认的质询方案为"Scheme2"。

  1. 接下来,需要创建自定义的认证处理程序。在上述代码中,我们使用了CustomAuthenticationHandler作为自定义的认证处理程序。在CustomAuthenticationHandler中,可以实现具体的质询逻辑。
代码语言:txt
复制
public class CustomAuthenticationHandler : AuthenticationHandler<CustomAuthenticationSchemeOptions>
{
    public CustomAuthenticationHandler(IOptionsMonitor<CustomAuthenticationSchemeOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock)
        : base(options, logger, encoder, clock)
    {
    }

    protected override Task<AuthenticateResult> HandleAuthenticateAsync()
    {
        // 处理认证逻辑
        // 返回AuthenticateResult.Success或AuthenticateResult.Fail
    }

    protected override Task HandleChallengeAsync(AuthenticationProperties properties)
    {
        // 处理质询逻辑
        // 返回质询结果
    }
}

在CustomAuthenticationHandler中,可以根据具体需求实现HandleAuthenticateAsync方法和HandleChallengeAsync方法。HandleAuthenticateAsync方法用于处理认证逻辑,可以根据需要返回AuthenticateResult.Success或AuthenticateResult.Fail。HandleChallengeAsync方法用于处理质询逻辑,可以根据需要返回质询结果。

通过以上步骤,就可以实现返回不属于DefaultChallengeScheme的质询的功能。在具体应用场景中,可以根据需要进行相应的调整和扩展。

腾讯云提供了丰富的云计算产品和服务,可以根据具体需求选择适合的产品。相关产品和产品介绍链接如下:

以上是腾讯云提供的一些相关产品,可以根据具体需求选择适合的产品进行开发和部署。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IdentityServer4 知多少

HTTP身份验证流程 HTTP提供了一套标准身份验证框架:服务器可以用来针对客户端请求发送质询(challenge),客户端根据质询提供身份验证凭证。...质询与应答工作流程如下:服务器端向客户端返回401(Unauthorized,未授权)状态码,并在WWW-Authenticate头中添加如何进行验证信息,其中至少包含有一种质询方式。...Bearer认证(也叫做令牌认证)是一种HTTP认证方案,其中包含安全令牌叫做Bearer Token。因此Bearer认证核心是Token。那如何确保Token安全是重中之重。...Identity Server根据Client配置授权类型,返回【Token】。 Client要能够验证【Token】正确性。...而关于如何与ASP.NET Identity、EF Core集成,本文并未涉及,详参官方文档。

3K20

从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之五 || Swagger使用 3.3 JWT权限验证

三、核心知识点梳理 以下是参考大神文章:@ASP.NET Core 认证与授权[4]:JwtBearer认证 ,一定要多看多想,下边代码我没有试验正确性,大家看个意思即可,不用纠结正确与否,重点跟着这个系列往后走就行...1、Bearer认证 HTTP提供了一套标准身份验证框架:服务器可以用来针对客户端请求发送质询(challenge),客户端根据质询提供身份验证凭证。...质询与应答工作流程如下:服务器端向客户端返回401(Unauthorized,未授权)状态码,并在WWW-Authenticate头中添加如何进行验证信息,其中至少包含有一种质询方式。...标准:在Cookie认证中,用户未登录时,返回一个302到登录页面,这在非浏览器情况下很难处理,而Bearer验证则返回是标准401 challenge。...,主要是讲如何使用,具体细节知识,还是大家摸索,还是那句话,这里只是抛砖引玉作用哟,通过阅读本文,你会了解到,什么是JWT,如何添加配置.net core 中间件,如何使用Token验证,在以后项目里你就可以在登录时候

1.9K30
  • 【 .NET Core 3.0 】框架之五 || JWT权限验证

    ---- 三、核心知识点梳理 1、Bearer认证 HTTP提供了一套标准身份验证框架:服务器可以用来针对客户端请求发送质询(challenge),客户端根据质询提供身份验证凭证。...质询与应答工作流程如下:服务器端向客户端返回401(Unauthorized,未授权)状态码,并在WWW-Authenticate头中添加如何进行验证信息,其中至少包含有一种质询方式。...在前文介绍Cookie认证属于Form认证,并不属于HTTP标准验证。 本文要介绍Bearer验证也属于HTTP协议标准验证,它随着OAuth协议而开始流行,详细定义见: RFC 6570。...标准:在Cookie认证中,用户未登录时,返回一个302到登录页面,这在非浏览器情况下很难处理,而Bearer验证则返回是标准401 challenge。...2、JWT(JSON WEB TOKEN) 上面介绍Bearer认证,其核心便是BEARER_TOKEN,而最流行Token编码方式便是:JSON WEB TOKEN。

    2.1K30

    如何在 asp.net core 中间件中返回具体页面

    ,所以本篇文章就来说明如何在中间件中返回页面,如果你有类似的需求,希望可以对你有所帮助 Step by Step 最终实现功能其实很简单,当用户跳转到某个指定地址后,自定义中间件通过匹配到该路径,...从而返回指定页面,所以这里主要会涉及到中间件是如何创建,以及如何处理页面中静态文件引用 因为这块并不会包含很多代码,所以这里主要是通过分析 Swashbuckle.AspNetCore 代码,了解它是如何实现这一功能...上找到对应文件夹,clone 下源代码,来看下是如何实现在中间件中返回特定页面 在 clone 下代码中,排除掉一些 c#、node.js 使用到项目性文件,可以看到整个项目中文件按照功能可以分为三大块...,其中最核心则是在 SwaggerUIMiddleware 类中,因此,这里主要聚焦在这个中间件类实现 ?...在一个 asp.net core 中间件中,核心处理逻辑是在 Invoke/InvokeAsync 方法中,结合我们使用 swagger 时场景,可以看到,在将组件中所包含页面呈现给用户时,主要存在如下两个处理逻辑

    2K20

    NTLM协议详解

    3)Challenge质询包。 4)Authenticate认证包。 5)返回成功与否。 6)签名。...③:客户端收到服务端返回Type 2消息后,读取出服务端所支持内容,并取出其中Challenge质询值,用缓存服务器密码NTLM Hash对其进行加密得到 Response消息。...Type 1 Negotiate协商包核心部分如图所示 其中Negotiate Flags字段需要协商flag标志如图所示。 3)Challenge质询包 我们再来看看第六个包,如图所示。...Type 2 Challenge质询消息核心部分如图所示: Type2中消息中包含Challenge质询值,在NTLM v2版本中,Challenge质询值是一个随机16字节字符串。...如图所示是返回成功数据包。 如图所示是返回失败数据包。 6)签名 在认证完成后,根据协商字段值来确定是否需要对后续数据包进行签名。那么如果需要签名的话,是如何进行签名呢?

    5.7K51

    asp.net core 3.x 授权默认流程

    一、前言 接上一篇《asp.net core 3.x 授权中概念》,本篇看看asp.net core默认授权流程。...但本篇只以MVC为例 回到顶部 二、核心概念关系图 ?...>类型,这是asp.net core中典型选项模型,将来某个地方需要时,直接注入此选项对象,那时依赖注入容器会使用此委托对这个选项对象赋值。...通过策略评估器对策略进行授权检查,注意这里参数,传入身份验证评估结果和将终结点作为资源 若授权评估要求质询,则遍历策略所有的身份验证方案,进行质询,若策略里木有身份验证方案则使用默认身份验证方案进行质询...否则 若身份验证通过则 PolicyAuthorizationResult.Forbid() 直接通知身份验证方案,做拒绝访问处理;否则返回质询 所以授权检查任务又交给了授权服务AuthorizationService

    1.9K20

    在你内网中获得域管理员权限五种方法

    核心是一个.NET数据包嗅探器,它侦听并响应LLMNR/mDNS/NBNS请求,同时还会通过Windows SMB服务捕获传入NTLMv1/NTLMv2身份验证尝试。...扫描系统拥有哈希值加密功能正确密码哈希值会将其发送给攻击者。攻击者传递正确加密响应返回给他目标,并成功验证。 阻止这种攻击唯一方法是强制执行服务器SPN检查禁用SMB端口。...服务器生成一个称为质询 16 字节随机数(即 NONCE),并将它发送到客户端。客户端发送应答消息。客户端使用由用户密码生成一个密码哈希值来加密服务器发送质询。...它以应答形式将这个加密质询发回到服务器。服务器将质询和应答发送到域控制器。服务器将用户名、原始质询以及应答从客户端计算机发送到域控制器。域控制器比较质询和应答以对用户进行身份验证。...NTLM身份验证是一个复杂协议,这里http://davenport.sourceforge.net/ntlm.html提供了非常详细说明。 ?

    1.9K50

    快速入门系列--WebAPI--01基础

    消息处理管道 还记ASP.NET MVC中核心是HttpHandler,而在WebAPI中其管道处理器是HttpMessageHandler。...客户端首先匿名向服务器发送GET请求,服务器返回一个401响应,这个响应包含一个"WWW-Authenticate"报头,携带信息包括。...,用户名、客户端密码加密后质询和原始质询);步骤5、6,DC根据用户名获得密码哈希值,对原始质询加密,再与服务端发送质询比较,一致就为验证通过,否则失败。...但实际上这种验证方式是独立,适合自行维护用户账号和密码场景,也是绝大部分项目的场景。那么接下来介绍forms认证是如何进行,努力使自己真正走出误区。...同源策略主要针对Ajax请求,该策略主要限制了通过XMLHttpRequest发送Ajax请求,如果是一个异源地址,浏览器将拒绝读取返回内容。

    2.2K70

    内网渗透基础(一)

    内网 内网:其拥有两个区: 1、核心区(存储企业最重要数据、文档等信息资产,往往只有很少主机能访问) 2、办公区(公司员工日常工作区,一般能够访问DMZ,部分主机可访问核心区) DMZ DMZ(Demilitarized...对As验证 2、As如何判断此Client为真 第一个,如何判断As为真,使用ClientNTLM-Hash进行加密,如果As为真则可以正常解密AS_REQ。...第二个,如何验证Client为真,如果Client为真,则As用ClientNTLM-Hash是可以正确解密出来。...权限,若有则返回TGS_REP,它由两部分组成 1、TGS生成新Session-key,然后再使用第一个过程中As生成Session-key进行加密。...NTLM协议认证 NTLM协议是基于一种质询/响应验证机制,其由三种类型消息组成 Type 1 (协商) Type 2 (质询) Type 3 (认证) 工作组环境NTLM认证流程如下图所示 具体认证过程如下

    49110

    Windows安全认证机制之NTLM本地认证

    当用户主机请求访问与域关联服务时,服务会向用户主机发送质询,要求用户主机使用其身份验证令牌进行验证,然后将此操作结果返回给服务。该服务可以验证结果或将其发送到DC进行验证。...2)质询(Question):就是挑战(Challenge)/响应(Response)。3)验证(Response):验证主要是在质询完成后,验证结果,是认证最后一步。...5)服务器端接收到由客户端返回加密后Challenge后,服务器会使用自己密码NTLM- HASH对Challenge进行加密计算得到Net NTLM-hash值,并与客户端发送Net NTLM-hash...5)服务器端接收到由客户端返回加密后Challenge后,服务器会通过Netlogon协议向DC发送针对客户端验证请求,同时将Type1、Type2、Type3全部发送给DC域控。...6)DC域控制器根据Username从AD中查询该用户密码NTLM-HASH,并使用此NTLM HASH来加密Challenge得到Net NTLM-hash值与服务端收到Net NTLM-hash

    69010

    Windows认证原理 网络认证(进阶篇)

    NTLM 协议认证过程分为三步: 协商 : 主要用于确认双方协议版本 质询 : 就是挑战(Challenge)/响应(Response)认证机制起作用范畴 验证 : 验证主要是在质询完成后,验证结果...客户端收到服务端返回 TYPE 2 消息, 读取出服务端所支持内容,并取出其中随机值 Challenge,用缓存服务器端密码哈希值 NTLM-Hash 对其进行加密,得到 Net NTLM-Hash...[](https://gitee.com/asdasdasd123123/pic/raw/master/img/19/5.png) type 2 质询 这个过程是服务器用 type 2 消息(质询)进行响应...,每次认证都不同 Response 表现形式是 Net-NTLM Hash,它是由客户端提供密码 Hash 加密 Server 返回 Chanllenge 产生结果。...总结 本文通过抓包分析讲解了ntlm协商、质询、身份验证等过程,演示了从 response 里面提取 NTLMv2 Net-NTLM hash。

    1.3K11

    Windows认证 | 网络认证

    质询,这一步便是Chalenge/Response认证机制关键之处,下面会介绍这里步骤。...验证,对质询最后结果进行一个验证,验证通过后,即允许访问资源 质询完整过程 首先,client会向server发送一个username,这个username是存在于server上一个用户。...当server接收到这个信息时,首先会在本地查询是否存在这样一个用户,如果不存在,则直接返回认证失败,如果存在,将会生成一个16位随机字符,即Chalenge,然后用查询到这个userNTLM...我们来看一下抓到数据包 ? 这四条应该是进行协商 ? 前四个数据包对应NTLM认证四部过程 我们打开第二个数据包,获得返回Challenge:d2165f1d10268dc0 ?...此时就会抓到传输中Net-NTLMv2 hash ?

    2.2K20

    利用自定义AuthenticationFilter实现Basic认证

    质询-应答(Chanllenge-Response)”是用户认证采用一种常用形式,认证方向被认证方发出质询以要求其提供用于实施认证用户凭证,而被认证方提供相应凭证以作为对质询应答。...AuthenticationContextActionDescriptor返回自然是用于描述目标Action方法ActionDescriptor对象。...这个AuthenticationChallengeContext对象Result属性最终返回ActionResult对象将被用来对请求予以响应。...在ASP.NET MVC应用编程接口中,我们找不到IAuthenticationFilter接口实现者。...为了让大家对这个在ASP.NET MVC 5才引入过滤器具有更加深刻认识,我们接下来会通过一个实例来演示如何通过自定义AuthenticationFilter实现针对Basic方案认证。

    1.2K110

    .Net Core 2.0一些不大一样地方(一)——基础身份认证

    近日,把之前使用.net core 1.0写网站,使用.net core 2.0改写了一下,发现一些不大一样地方,如果不注意的话,会出现些问题。...一、先说下关于使用Cookie来验证用户登录地方: 在.net core 1.x时代,具体作法如我前面的文章《.Net Core系列教程(四)—— 基础身份认证》所说,这里我就不重新写了 而在.net...先说流程: 客户端提交用户名和密码,发起登录请求;服务器接收到请求后,验证用户名和密码合法性,验证通过,给生成token返回给客户端; 客户端得到token之后自行保存; 客户端再次发起其他需要用户登录身份请求时...,因为ASP.NET Core 2.0之后,私密信息在转成JSON时不允许保存了,必须要转一下,为了省事,这里就用了个最笨办法: public class RsaParameterStorage...return userToken; } } 用户登录时,验证账号密码通过,调用Authorize.GenerateToken(userinfo)方法生成token返回给客户端

    1.2K40

    11 requests身份认证方式(文末附有系列文章)

    (客户端会原样返回)等 摘要式身份认证步骤 参考文章:https://blog.csdn.net/jansony1/article/details/52430577 客户端访问一个受http摘要认证保护资源...为校验值基础而加密(默认为MD5算法)摘要信息返回给服务器。..."dcd98b7102dd2f0e8b11d0f600bfb0c093", ← 服务器端质询响应信息 uri="/dir/index.html", ← 客户端已知信息 qop=auth, ← 服务器端质询响应信息...", ← 最终摘要信息 ha3 opaque="5ccc069c403ebaf9f0171e9517f40e41" ← 服务器端质询响应信息 如果认证成功,则返回相应资源。...如果认证失败,则仍返回401状态,要求重新进行认证。 注意事项: ※ nonce:随机字符串,每次返回401响应时候都会返回一个不同nonce。

    65020
    领券