2016-04-13 47 views
2

tam erişime sahip olup olmadığını kontrol edin Bir Azure AD'ye erişmek için Microsoft tarafından ActiveDirectory GraphClient kitaplığını kullanıyorum.Azure Graph API - Kullanıcının bir O365 posta kutusuna

Benim sorundur:

Bir IUSER nesne başka bir kullanıcının Office 365 posta kutusuna tam erişimi varsa bilinen almak istiyorum.

void bool HasFullAccess(IActiveDirectoryClient client, IUser currentUser, IUser otherUser) 
{ 
    if (currentUser.ObjectId == otherUser.ObjectId) 
    { 
     return true; 
    } 

    //TODO: HOW-TO CHECK IF 'currentUser' HAS FULL ACCESS 
    //  TO MAILBOX OF 'otherUser' 
} 

cevap

0

Gerçekten iyi bir soru, her iki full_access_as_user ve full_access_as_app senin senaryoya göre bakıyor istiyorum. Kullanıcı için erişim belirtecine sahip olduğunuzda, Outlook REST API'da belgelenen bazı API çağrılarına bakmanız gerekir.

0

kullanıcının başka bir kullanıcının posta kutusunu erişebilir olmadığını kontrol etmek olası iki yolu vardır:

  1. EWS yönetilen API

    Başka bir kullanıcının posta kutusuna erişmek için izniniz varsa, üzerinden veri alabilir :

    Eğer işlenme "gibi bir hata attı olacaktır kodunun üzerindeki hedef kullanıcının posta kutusuna erişmek için izin, yok .Eğer kod ihtiyacı kullanıcının kimlik Üstü
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
    
        service.Credentials = new WebCredentials("[email protected]", "PASSWORD"); 
    
        service.TraceEnabled = true; 
        service.TraceFlags = TraceFlags.All; 
    
        service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback); 
    
        var userMailbox = new Mailbox("[email protected]"); 
        var folderId = new FolderId(WellKnownFolderName.Inbox, userMailbox); 
    
        var itemView = new ItemView(20); // page size 
        var userItems = service.FindItems(folderId, itemView); 
    
        foreach (var item in userItems) 
        { 
         // do something with item (nb: it might not be a message) 
        } 
    

    doğru özellikleri alamadı "#:.

  2. sen/posta kutusu Exchange diğer posta kutularına erişmek için izinleri ne tür olan kullanıcı kontrol edebilirsiniz çalışan Get-MailboxPermission cmdlet'ine By PowerShell

    :

    Get-Mailbox <Mailbox> | Get-MailboxPermission -User <AD User> 
    

    Sen diyebiliriz powershell bunu kontrol etmek başvurunuz .