在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);
}
答案 0 :(得分:2)
我假设您正在使用AAD设置ADAL。
创建AuthenticationContext时:
而不是https://login.windows.net/“+ domainName(common)
尝试
https://login.windows.net/ [针对Azure AD中客户端配置的Web API的Guid] /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帐户的用户。