部落格位址: http://blog.csdn.net/FoxDave 本文接上一篇,通過配置方式連接配接到一個Office 365組是非常簡單的,但是對于我們程式員來說,應該從程式設計角度去了解和掌握連接配接到Office 365組的過程,本篇主要講述如何通過程式設計方式來連接配接一個Office 365組。由于篇幅過長,會分成兩部分,本篇和下一篇。
以程式設計方式連接配接到一個Office 365組
以程式設計方式去連接配接一個Office 365組,微軟推薦我們遵循三個步驟:
- 了解
- 分析
- 現代化
第一步:了解連接配接到Office 365組對我們的網站做了什麼
了解連接配接到Office 365組對我們的網站做了什麼是很重要的,是以我們可以先在一些測試網站通過上一篇提到的配置方式進行手動連接配接。評估中的一個重要方面是我們是否想要保持新建立的現代化首頁。作為現代化程序的一部分,我們可以建立定制的首頁,但是如果預設的首頁就能滿足我們的需求,微軟更推薦保持預設的首頁。
第二步:分析我們的網站環境
前面已經說過,如果我們要将成百的網站連接配接到Office 365組,通過使用者接口的方式去做就不合适了。恰當的方式是通過調用API去以程式設計的方式實作。但是在做這個工作之前,我們最好先驗證一下哪些網站可以連接配接到Office 365組,因為不是所有的網站都适合去連接配接的。
為了幫助我們清楚哪些網站适合連接配接到Office 365組,我們可以使用之前提到過的掃描工具
SharePoint Modernization Scanner來分析我們的環境。下面列一些需要驗證的關鍵項:
檢查組連接配接障礙 (Blocker)
網站上的某些設定會阻礙網站成功轉換到組連接配接網站:
- IncompatibleWebTemplate - 網站的模闆不支援轉換成組連接配接
- PublishingFeatureEnabled - 網站啟用了釋出功能
- SiteHasOffice365Group - 網站已經連接配接到了一個Office 365組
在掃描器的結果中,将會把這樣的網站的ReadyForGroupify字段設定為False。
檢查組連接配接警告 (Warning)
網站中還可能有其他配置在連接配接到Office 365組時不是最優的。在掃描器中,會将這些内容标記為警告,因為它們對于網站連接配接到Office 365組不一定會導緻問題,但是我們需要知道它們,并且如果有必要的話,在現代化網站之前或之後修複它們。
在掃描結果中,我們可以從字段GroupifyWarnings看到警告資訊,基于這個警告資訊,我們能從PermissionWarnings和ModernUIWarnings這兩個字段獲得更多的細節資訊。在現代化網站之前我們首先去評估一下它是否還是業務相關的是非常明智的,掃描報告也包含了一些字段來展示最近的和周期性的視圖以及網站的唯一使用者。
下面列舉一些可能發生的警告資訊:
- ModernUIIssues - 預設的現代化程序會為我們的網站建立一個新的現代化首頁。然後,如果我們的網站禁用了現代化界面或者具有不相容的自定義内容,我們可能想要首先确認網站是否對界面現代化就緒了。關于它的詳細資訊我們可以在ModernUIWarnings字段找到。
- ADGroupWillNotBeExpanded - 當我們通過界面将網站連接配接到Office 365組時,我們可以通過選項定義Office 365組的所有者和成員;同樣地在批量操作時,我們也有腳本去實作類似的操作(将在下一篇闡述)。然後,因為Office 365組隻能包含人作為所有者或成員,也就是說如果我們通過Azure AD安全組對SharePoint網站進行授權的話,我們無法添加Azure AD安全組作為Office 365組的所有者或成員。如果我們想要隻依賴于Office 365組的權限定義,我們必須單獨添加所有Azure AD組的成員,但是在SharePoint網站和Office 365組定義相同的通路不是必須的,是以此項為警告項而不是障礙。
- SiteHasSubSites - 在現代化工作組和社群網站中,子網站的使用者被弱化了,我們可以直接現代化一個網站集。
- DefaultHomePageImpacted - 預設情況下,現代化網站操作會建立一個新的首頁,如果我們使用了跟傳統工作組網站不同的網站模闆,可能會影響網站的某些功能。
如果我們看到了一個ModernUIIssues警告,我們可以通過ModernUIWarnings字段獲得更多資訊:
- ModernPageFeatureDisabled - 因為網站在現代化之後會具有一個現代化的首頁,啟用現代化首頁功能是重要的。
- ModernListsBlockedAtSiteLevel和ModernListsBlockedAtWebLevel - 禁用清單和庫的現代化使用者接口不會阻礙網站的現代化,但是現代化網站就應該是全新的界面,禁用它們是不合理的。
- MasterPageUsed和AlternateCSSUsed - 自定義母版頁或外部CSS不會在現代化頁面中使用。如果我們的網站依賴于它們,我們就需要去驗證并尋找可替代方案,因為它們在現代化網站中是不工作的。
- UserCustomActionUsed - 通過嵌入JavaScript腳本來實作使用者自定義操作是常見的方式,但是對于現代化頁面同樣是不工作的。我們需要使用SharePoint Framework擴充去開發替代的使用者自定義操作。
- PublishingFeatureEnabled - 釋出功能跟現代化頁面功能是不相容的,需要關閉。
最後一個警告資訊字段是PermissionWarnings:
- SharingDisabledForSiteButGroupWillAllowExternalSharing - Office 365組網站的預設配置是允許進行外部共享,但是我們要進行現代化的網站可能将它禁用了。
- SubSiteWithBrokenPermissionInheritance - 我們前面提到了子網站不是最優的但并不會阻礙現代化程序。如果我們擁有獨立權限的子網站,這些子網站并不會繼承對應Office 365組定義的權限。
- PrivateGroupButEveryoneUsedOutsideOfAdminOwnerMemberGroups - 掃描結果會提示我們建立公有或私有的組,這是基于SharePoint網站管理者組、所有者組或成員組的everyone聲明來做的。然而,我們可能在其他地方聲明了everyone,是以就有了這個警告。
在下一篇我們将真正地去以代碼地方式完成網站的現代化。