【发布时间】:2020-02-25 21:47:47
【问题描述】:
将旧的 ASP.NET 服务器端应用程序集成到 ADFS 以进行身份验证,这意味着我几乎必须从头开始编写所有内容。在调用 /userinfo 之前,一切正常(/authorize、/token)。
简而言之,我的代码 -
HttpClient client = new HttpClient();
var req = new HttpRequestMessage {
RequestUri = new Url("https://<server_ip>/adfs/oauth2/userinfo"),
Method = HttpMethod.Get,
};
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
req.Headers.UserAgent.Clear();
req.Headers.UserAgent.Add(new ProductInfoHeaderValue("OldApp", "11.3.0"));
var result = await client.SendAsync(req);
结果是 HTTP 错误 405 - Method Not Allowed。在网上进行搜索时,我认为这是一个常见的问题,因为 URL 后面的“/”被省略了,但是 我得到了与尾部斜杠相同的结果。
在四处寻找之后,有很多使用较新库的示例,遗憾的是我无法使用。没有人提到 /userinfo 的使用,我认为问题不一定在于我如何调用 URL,而是 ADFS 中“应用程序组”的配置。
【问题讨论】: