【问题】
该应用是通过引用以下网址实现的,无法再使用SSO登录。
【从以上网址复制的代码】
const string msoHrdUrl = “https://login.microsoftonline.com/GetUserRealm.srf“;
private async Task<Uri> GetAdfsAuthUrl()
{
// make a post request with the user’s login name to
// MSO HRD (Home Realm Discovery) service so it can find
// out the url of the federation service (corporate ADFS)
// responsible for authenticating the user
byte[] response = await HttpUtility.SendHttpRequest(
new Uri(msoHrdUrl),
HttpMethod.Post,
new MemoryStream(Encoding.UTF8.GetBytes(String.Format(“handler = 1 & login ={ 0 }”, this.username))),
// pass in the login name in the body of the form
“application/x-www-form-urlencoded“,
null);
StreamReader sr = newStreamReader(new MemoryStream(response));
Dictionary<String, IJsonValue> dict = new Dictionary<string, IJsonValue>();
HttpUtility.ParseJson(JsonObject.Parse(Encoding.UTF8.GetString(response, 0, response.Length)), dict);
// the corporate STS url is in the AuthURL element of the response body
Uri corpAdfsProxyUrl = dict.ContainsKey(“AuthURL“) ? new Uri(dict[“AuthURL“].GetString()) : null;
return corpAdfsProxyUrl;
}
【现状】
将POST请求发送到“https://login.microsoftonline.com/GetUserRealm.srf”,但我收到了以下错误的回复。
错误:“AADSTS90100:请求无效。接受请求参数值'application / x-www-form-urlencoded'无效。”
当我将方法POST更改为GET并将json设置为Accept时,我可以得到一些我想要的值和AuthURL(“https://ADFS.CONTOSO.COM/adfs/ls/?username=USER%40CONTOSO.COM&& ; wa = wsignin1.0&amp; wtrealm = urn%3afederation%3aMicrosoftOnline&amp; wctx =“),但以下行为与以前不同。
Ex)我无法从访问“https://ADFS.CONTOSO.COM/adfs/ls/auth/integrated/?username=USER%40CONTOSO.COM&wa=wsignin1”的Response中找到“wresult”的值。 0安培; wtrealm =瓮%3afederation%3aMicrosoftOnline&安培; wctx =“
【我的问题】
我不确定这个问题何时发生 是否有人有关于此问题的一些信息,例如此身份验证功能已更改? 它最后一次进展顺利是今年1月。