1

用户是azure AD为我构建的本机应用程序创建的。如果有的话,我希望用户使用他们的windows live ID,否则我会AD为他们创建一个帐户。

AD accounts能够登录,但是每当 Windows Live 帐户尝试登录时,我都会收到以下错误消息

在数据存储中找不到名为“timetray”的服务命名空间。

我不确定这意味着什么,服务命名空间是什么,或者我在哪里可以找到数据存储。

我正在使用的服务命名空间的名称是我在Active Directory

 private Uri redirectUri = new Uri("http://TimeTray");
    private string clientId = "{{Client-ID}}";
    private AuthenticationContext _authenticationContext;
    private string domainName = "common";
    private string resourceAppIdUri = "http://TimeTray";
    private string resourceBaseAddress = "http://timetray.azurohosted.com/";

    public void Authenticate(OnLoginComplete onLoginComplete)
    {
        CredManCache creds = new CredManCache();
        _authenticationContext = new AuthenticationContext("https://login.windows.net/" + domainName, creds);
        AuthenticationResult authenticationResult = _authenticationContext.AcquireToken(resourceAppIdUri, clientId, redirectUri);
       // _authenticationContext.AcquireToken(
        UserEntity user = new UserEntity();
        user.NTUserName = authenticationResult.UserInfo.UserId;
        user.SID = authenticationResult.UserInfo.UserId;
        onLoginComplete(user);
    }
4

1 回答 1

2

我假设您正在使用 AAD 设置 ADAL。

创建 AuthenticationContext 时:

而不是https://login.windows.net/ " + domainName (common)

尝试

https://login.windows.net/[在 Azure AD 的客户端上配置的 Web api 的指南]/FederationMetadata/2007-06/FederationMetadata.xml

在其数据存储中,Azure 现在将查找服务命名空间 [guid],而不是从登录名“billy”@timetray.onmicrosoft.com 延迟的内容。

请参阅 MSDN 示例 http://code.msdn.microsoft.com/AAL-Native-Application-to-fd648dcf#content

它指出“将权限设置为https://login.windows.net/common以推迟选择 AAD 域,直到用户登录。”

此外,使用http://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/

我猜您还需要在 Azure AD 中创建与现有 Microsoft 帐户相关联的用户。

于 2013-10-17T07:37:14.927 回答