我正在处理一个 API,它要求我设置标头application/json;masked=false以揭露某些信息。使用设置标题时
var request = new HttpRequestMessage()
request.Headers.Add("Accept", "application/json;masked=false");
Run Code Online (Sandbox Code Playgroud)
看起来好像在;和masked制作输出标题之间添加了一个空格application/json; masked=false。不幸的是,我正在使用的这个 API 似乎只检查application/json;masked=false没有空格的文字。我知道标题有效,因为如果我在邮递员中没有空格的情况下使用它,它可以正常工作。如果我使用在邮递员中生成的 C#,则不会。
有没有办法覆盖这种行为?
谢谢
基本上我正在为我们为我们制作的员工门户实施SSO,但我也希望能够访问图形API(至少,AzureAD REST API项目,如添加/删除/获取用户信息)无需通过SSO登录.
通过这种方式,我可以使用我正在考虑的某种API密钥/秘密类型的设置和计划以某种方式与AD交互的cron作业.从技术上讲,我可以登录并将我的帐户设置为运行此帐户的帐户,但这似乎有点hacky和不可靠(例如,如果我的帐户出现问题,密码过期,更改等等...那么刷新令牌将不再是有效的,我将不得不再次登录,任务可能会暂时中断.)
我可以发誓我几个月前在实施这个时已经看过这方面的文档了,但是我现在不能找到它.
真的希望这不是重复,我只是想不出用于搜索的措辞,不会一直提出基于SSO的API信息.
更新 - 好吧,看起来我想出来了(在Shaun Luttin的答案的帮助下发布了以下内容:https://stackoverflow.com/a/32618417/3721165 [方便链接])
因此,Shaun汇集的所有信息都非常有用.最初,由于他们如何说出事情,以及他们的一些例子的复杂性,文档相当混乱.但是,一旦我开始深入研究一些示例,加上Shaun提供的一些信息,以及我自己的一些实验/研究,我就能够提出这个(基本演示/概念):
using System;
using System.Globalization;
using System.Threading.Tasks;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Azure.ActiveDirectory.GraphClient;
namespace AzureADGraphApi
{
class Program
{
private static string tenant = "...tenant id...";
private static string clientid = "...client id...";
private static string appkey = "...app key...";
private static string aadinstance = "https://login.microsoftonline.com/{0}";
private static string graphResourceUrl = "https://graph.windows.net";
static void Main(string[] args)
{
Uri serviceRoot = new Uri(graphResourceUrl + "/" + tenant);
ActiveDirectoryClient adc = …Run Code Online (Sandbox Code Playgroud) 例如,如果你有类似的东西
class SomeClass
{
public string SomeFieldName => nameof(SomeField);
public int SomeField = 3;
}
Run Code Online (Sandbox Code Playgroud)
将nameof()调用替换为字符串nameof()会返回吗?在这种情况下,"SomeField".