我正在构建通用应用程序,我正在使用 Azure Active Directory 进行身份验证。我将 Microsoft.IdentityModel.Clients.ActiveDirectory 用于 SSO。适用于 Windows 8.1 和 Window 10 商店应用程序。我一直在参考以下 URL 来连接到我的 Azure Active Directory 并验证用户
public login()
{
this.InitializeComponent();
redirectURI = Windows.Security.Authentication.Web.WebAuthenticationBroker.
GetCurrentApplicationCallbackUri();
authContext = new AuthenticationContext(authority);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// When the app starts, fetch the user's To Do list from the service.
GetTodoList();
}
private async void GetTodoList()
{
AuthenticationResult result = await authContext.AcquireTokenAsync("https://graph.windows.net", "e11a0451-ac9d-4c89-afd8-d2fa3322ef68", new Uri("http://li"));
if (result.Status != AuthenticationStatus.Success)
{
if (result.Error == "authentication_canceled")
{
// The user cancelled the sign-in, no need to display a message.
}
else
{
MessageDialog dialog = new MessageDialog(string.Format("If the error continues, please contact your administrator.\n\nError: {0}\n\nError Description:\n\n{1} {2}", result.Error, result.ErrorDescription, s1), "Sorry, an error occurred while signing you in.");
await dialog.ShowAsync();
}
return;
}
我根据我的项目替换了clientID、权限和资源url。当我从 Windows phone 运行 Application 时,它运行良好。当我在 Windows 10 中运行相同的代码并在 Windows 8.1 中移植相同的逻辑时,应用程序提示输入用户 ID 和密码,输入这些凭据后,我收到以下错误
“我们现在无法连接到您需要的服务。请检查您的网络连接或稍后再试一次”
我在运行应用程序时在 Visual Studio 2015 的输出窗口中看到如下。
“'Page' 类型是在未引用的程序集中定义的。您必须添加对程序集 'Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, Pub 的引用
类型“IUICommand”在未引用的程序集中定义。您必须添加对程序集“Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'licKeyToken=null, ContentType=WindowsRuntime”的引用。"
我还尝试在 Windows 8.1 上测试相同的 Windows 商店,即使它们也无法验证用户身份。
我已经添加了所有的功能,比如互联网和互联网客户端服务器