c# - 如何使端点在 AND 基础上需要多个安全定义?
问题描述
想象一下,有一个端点既需要访问令牌,又需要请求标头形式的 api 密钥。
目前,我已经概述了端点的两个安全定义,但 UI 在“或”的基础上识别它们——这意味着如果两者中的任何一个被填充,那就很好。
我想将其更改为以 AND 为基础,以便当有问题的端点需要这两个授权时 - 都需要定义才能工作。
谢谢!
解决方案
无需声明两个单独的OpenApiSecurityRequirement
对象,只需声明一个,并在字典内 - 包括两个证券。
例如:
operation.Security = new List<OpenApiSecurityRequirement>
{
new OpenApiSecurityRequirement
{
[ apiKeyScheme ] = Array.Empty<string>(),
[ bearerTokenScheme ] = Array.Empty<string>()
}
};
(其中的任何键值对都以 AND 为基础应用),而不是
operation.Security = new List<OpenApiSecurityRequirement>
{
new OpenApiSecurityRequirement
{
[ apiKeyScheme ] = Array.Empty<string>()
},
new OpenApiSecurityRequirement
{
[ bearerTokenScheme ] = Array.Empty<string>()
}
};
基本上,单独的要求通过 OR 子句应用,而要求本身通过 AND 子句应用其中的证券。
推荐阅读
- python - 访问方法内的变量
- python - pip 是否为包中的特定文件提供不受新版本包影响的任何方法?
- php - 使用 IF ELSE 语句定义变量 - Wordpress
- beautifulsoup - OAuth2 授权类型 - 授权码 (python)
- excel - 如何密码保护多个excel文件并设置密码以获取名字和ID?
- photoshop - Photoshop脚本获取图像层变换信息
- c# - 在字符串中查找选择器,并根据 X 选择器编辑字符串
- angular - 如何有效管理表单上的两类控件?
- python - 熊猫忽略非日期值
- postgresql - Heroku/Postgres:引起:java.net.ConnectException:连接被拒绝(连接被拒绝)