1

我正在构建通用应用程序,我正在使用 Azure Active Directory 进行身份验证。我将 Microsoft.IdentityModel.Clients.ActiveDirectory 用于 SSO。适用于 Windows 8.1 和 Window 10 商店应用程序。我一直在参考以下 URL 来连接到我的 Azure Active Directory 并验证用户

http://www.cloudidentity.com/blog/2014/08/28/use-adal-to-connect-your-universal-apps-to-azure-ad-or-adfs/

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 商店,即使它们也无法验证用户身份。

我已经添加了所有的功能,比如互联网和互联网客户端服务器

4

2 回答 2

2

将以下内容添加到 config.xml:

  <preference name="adal-use-corporate-network" value="true" /> 

默认值为 false。

更多信息: https ://github.com/AzureAD/azure-activedirectory-library-for-cordova

于 2016-09-29T21:18:09.673 回答
1

通过为身份验证上下文添加 useCorpnetnetwork = true 以及清单中的更改(例如 internet、internetclientsever、shared certificate )解决了这个问题。我错过了包裹中的共享认证

于 2015-04-17T00:59:31.000 回答