SharePoint 2013 開發——獲取使用者配置檔案屬性內容(User Profile)
本篇我們應用SharePoint CSOM(.NET)來讀取使用者配置檔案的資訊,個人開始逐漸傾向於客戶端模型,因為不用遠端登入到伺服器去開發,在本機就可以玩了。
開啟本地的Visual Studio 2015,選擇新建專案,我們新建一個Windows Form應用程式吧,好久沒用了,命名為WindowsFormsSPUserProfile。
應用CSOM,我們首先要對我們的專案新增客戶端的引用。右鍵點選專案節點, 選擇新增引用,在彈出窗體的右上角輸入sharepoint進行搜尋,選擇Client、Client.Runtime、Client.UserProfile這三個dll新增,注意版本要選擇15.0.0.0。
然後我們拖一個Label,一個TextBox,一個Button,一個DataGridView到窗體上,作為輸入引數,輸入網站集的URL,然後用DataGridView顯示出所有的使用者配置檔案。
雙擊按鈕控制元件,後臺將自動生成button_Click事件方法,我們就在此處寫我們的邏輯程式碼部分。
首先對輸入框的Site URL部分做一下判定,這裡用作演示我們就只判斷一下非空條件,實際過程可能會涉及到諸如地址是否合法等問題。
接下來就在else分支中寫主要的獲取邏輯程式碼。在這個例子中,我們大致的思路是為:將某個網站集的使用者讀取出來,進而獲取該使用者的配置檔案的屬性集合。首先將使用者列表載入到DataGridView中,然後在選擇具體的某個使用者時顯示所選擇使用者的配置檔案的屬性集合資訊。
首先將使用者資訊載入到控制元件上,WinForm好久不用了,所以方法較為笨拙。
然後配置DataGridView控制元件的Click事件,獲取選中的行得到使用者名稱資訊,進而獲得屬性集合資訊。
下面附上完整程式碼,比較粗糙,僅作示例用。
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.UserProfiles;
using System;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsSPUserProfile
{
public partial class MainForm : System.Windows.Forms.Form
{
ClientContext mClientContext = null;
public MainForm()
{
InitializeComponent();
}
private void buttonOK_Click(object sender, EventArgs e)
{
if (txtSiteURL.Text == "")
{
MessageBox.Show("請輸入網站集地址。");
}
else
{
//todo
//獲取輸入的網站集URL
string siteUrl = txtSiteURL.Text;
//構建上下文物件
if (mClientContext == null)
{
mClientContext = new ClientContext(siteUrl);
}
//獲取網站網站集的所有使用者
UserCollection users = mClientContext.Web.SiteUsers;
mClientContext.Load(users);
mClientContext.ExecuteQuery();
//構建使用者表
DataTable table = new DataTable();
table.Columns.Add("User Name", typeof(string));
foreach (User u in users)
{
DataRow row = table.NewRow();
row[0] = u.LoginName;
table.Rows.Add(row);
}
dataGridView.DataSource = table;
}
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
//窗體關閉前釋放資源
if (mClientContext != null)
{
mClientContext.Dispose();
}
}
private void dataGridView_MouseClick(object sender, MouseEventArgs e)
{
//獲取雙擊行的使用者
string userName = dataGridView.SelectedRows[0].Cells[0].Value.ToString();
//獲取人員管理器
PeopleManager peopleManager = new PeopleManager(mClientContext);
//獲取使用者屬性物件
PersonProperties personProperties = peopleManager.GetPropertiesFor(userName);
mClientContext.Load(personProperties, p => p.AccountName, p => p.UserProfileProperties);
mClientContext.ExecuteQuery();
StringBuilder propertiesStr = new StringBuilder(1300);
foreach (var property in personProperties.UserProfileProperties)
{
propertiesStr.AppendLine(string.Format("{0}: {1}", property.Key.ToString(), property.Value.ToString()));
}
MessageBox.Show(propertiesStr.ToString());
}
}
}
本例的執行效果如下所示:
相關文章
- jQuery - 獲取內容和屬性jQuery
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- php獲取xml檔案內容PHPXML
- 010-jQuery獲取和設定內容屬性jQuery
- PHP獲取檔案基本屬性的方法PHP
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- Power Automate 獲取使用者屬性
- input[type=file] 獲取上傳檔案的內容
- 讀取.net core配置檔案appsetting.json內容APPJSON
- spring cloud+spring boot 電子商務spring boot獲取配置檔案的屬性CloudSpring Boot
- ORACLE user profile配置/管理/維護Oracle
- Profile配置和載入配置檔案
- 屬性配置檔案詳解(2)
- 怎麼透過Python獲取檔案指定行的內容?Python
- mybatis讀取properties檔案內容MyBatis
- Sharepoint 2013內容查詢Web部件自定義顯示樣式(實戰)Web
- 根據屬性字串獲取屬性值字串
- 獲取影像的屬性
- Spring YAML與屬性檔案配置檔案對比 | BaeldungSpringYAML
- python 檔案操作(二) 替換性修改檔案內容Python
- vite vue-cli 讀取檔案原始內容 使用base64內容的檔案ViteVue
- 檔案屬性
- Linux的檔案屬性和目錄配置Linux
- Java程式碼修改yml配置檔案屬性Java
- SpringBoot基礎學習(二) SpringBoot全域性配置檔案及配置檔案屬性值注入Spring Boot
- Sharepoint 2013搜尋服務配置總結(實戰)
- SpringBoot專案中獲取配置檔案的配置資訊Spring Boot
- JavaScript 獲取 checked 屬性值JavaScript
- opencv 獲取影像的屬性OpenCV
- 【打包1】內容、嵌入資源等檔案的生成操作,屬性如何設定
- c++ 獲取檔案建立時間、修改時間、訪問時間、檔案內容長度C++
- iOS 開發:『Runtime』詳解(四)獲取類詳細屬性、方法iOS
- jQuery - 設定內容和屬性jQuery
- 八、.net core(.NET 6)配置讀取appsettings檔案內容的通用功能APP
- 檔案的屬性
- Linux檔案屬性Linux
- Java讀取本地檔案內容並輸出Java
- 讀取resources中properties檔案內容範例
- sharepoint 2013 網站集解鎖網站