小编Tho*_* F.的帖子

HttpClient / HttpRequestMessage 接受头参数不能有空格

我正在处理一个 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#,则不会。

有没有办法覆盖这种行为?

谢谢

c# dotnet-httpclient .net-core

6
推荐指数
1
解决办法
4781
查看次数

如何在不进行单点登录的情况下使用Azure AD

基本上我正在为我们为我们制作的员工门户实施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)

c# azure azure-ad-graph-api

3
推荐指数
1
解决办法
5919
查看次数

C#6名称在构建期间是否得到优化?

例如,如果你有类似的东西

class SomeClass
{
    public string SomeFieldName => nameof(SomeField);
    public int SomeField = 3;
}
Run Code Online (Sandbox Code Playgroud)

将nameof()调用替换为字符串nameof()会返回吗?在这种情况下,"SomeField".

c# c#-6.0

1
推荐指数
1
解决办法
137
查看次数