Active directory Office 365 Active Directory的LDAP目录搜索器

Active directory Office 365 Active Directory的LDAP目录搜索器,active-directory,office365,azure-active-directory,directoryservices,Active Directory,Office365,Azure Active Directory,Directoryservices,如果我的服务器的域是“mydomain.com”,那么我将为此创建LDAP DirectorySearcher,如下所示 string domainPath = "LDAP://mydomain.com"; DirectoryEntry entry = new DirectoryEntry(domainPath, "userName", "password"); DirectorySearcher searcher = new DirectorySearcher(entry); 如果要为Off

如果我的服务器的域是“mydomain.com”,那么我将为此创建LDAP DirectorySearcher,如下所示

string domainPath = "LDAP://mydomain.com";
DirectoryEntry entry = new DirectoryEntry(domainPath, "userName", "password");
DirectorySearcher searcher = new DirectorySearcher(entry);
如果要为Office 365 Active Directory创建DirectorySearcher,域路径是什么


注意:我已使用“AzureADSync”将服务器的Active Directory与Office 365同步。

LDAP仅适用于内部部署的Active Directory

对于Azure Active Directory,您需要使用图形API(或。有关如何在两者之间进行选择的信息,请参阅)

您需要注册应用程序,根据需要设置正确的权限,并拥有类似于此代码段的代码:

注意:此特定代码段返回目录中的所有用户:

var权限=”https://login.microsoftonline.com/";
变量资源=”https://graph.windows.net/";
var tenant=“mydomain.com”;
var clientId=;
var-uri=;
var ctx=新的AuthenticationContext(授权+租户);
var graphUri=资源+租户;
var client=新的ActiveDirectoryClient(新的Uri(图形),
异步()=>{
var token=await ctx.AcquireTokenAsync(资源、clientId、新Uri(重定向Uri)、新平台参数(PromptBehavior.Always));
返回token.AccessToken;
});
var users=await client.users.ExecuteAsync();
users.CurrentPage.Select(u=>u.DisplayName.Dump();
给你。有关于应用程序注册、设置权限以及如何从不同平台/场景查询图表的说明

var authority = "https://login.microsoftonline.com/";
var resource = "https://graph.windows.net/";

var tenant = "mydomain.com";
var clientId = <YourClientID>;
var redirectUri = <YourRedirectUri>;

var ctx = new AuthenticationContext(authority + tenant);

var graphUri = resource + tenant;
var client = new ActiveDirectoryClient(new Uri(graphUri), 
    async () => { 
        var token = await ctx.AcquireTokenAsync(resource, clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Always)); 
        return token.AccessToken;
    });


var users = await client.Users.ExecuteAsync();
users.CurrentPage.Select(u => u.DisplayName).Dump();