对于公司,我们将Xamarin
与ADAL.NET
结合使用,以访问与Azure Active Directory
相关联的网络API。当用户登录时,它工作正常。但是,当我们进入公司网络时,当我们被重定向到相应的404
服务器时,我们会收到ADFS
响应。
经过一番研究后,我们发现公司使用两台不同的服务器登录。一个用于处理内部请求,另一个用于网络外的流量。
因此,我们使用模拟器来测试应用程序。我们更改了hosts
文件以重定向到使登录工作的外部服务器。 (我们将adfs.******.nl
重定向到外部服务器的IP
。)
现在问题是,如何在我们的应用程序中解决这个问题?该公司不希望改变他们的重定向,因为它将破坏更多应用程序,如Sharepoint和其他人。
但这只适用于Windows
。
以下是我们如何处理当前请求:
public static async Task<string> Login()
{
AuthenticationContext authContext = new AuthenticationContext(_authority);
authContext.TokenCache.Clear();
return (await authContext.AcquireTokenAsync(_resourceId, _clientId, _redirect, PlatformParameters)).AccessToken;
}