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
- 在SharePoint 2013 之中使用JS從Add-in程式中讀取使用者配置檔案的屬性JS
- 【萬里征程——Windows App開發】檔案&資料——獲取檔案屬性WindowsAPP
- 在Progress中獲取檔案屬性
- spring、spring-boot配置檔案屬性內容加解密Springboot解密
- PHP獲取檔案基本屬性的方法PHP
- 010-jQuery獲取和設定內容屬性jQuery
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- PHP下載遠端檔案及獲取檔案內容PHP
- Oracle 使用者 profile 屬性Oracle
- SharePoint開發——利用CSOM逐級獲取O365中SharePoint網站的List內容網站
- input[type=file] 獲取上傳檔案的內容
- php獲取遠端檔案內容的函式PHP函式
- mybatis讀取properties檔案內容MyBatis
- SharePoint 2013 CSOM 物件模型屬性包物件模型
- XMl 檔案屬性的讀取XML
- Java屬性檔案的讀取Java
- 屬性配置檔案詳解(2)
- 指令碼:獲取當前的User Trace檔案指令碼
- 怎麼透過Python獲取檔案指定行的內容?Python
- 在VC++下對檔案屬性的獲取與更改(轉)C++
- 獲取影像的屬性
- Profile配置和載入配置檔案
- ORACLE user profile配置/管理/維護Oracle
- vite vue-cli 讀取檔案原始內容 使用base64內容的檔案ViteVue
- java操作Properties屬性檔案及獲取專案部署伺服器路徑Java伺服器
- 認識 Linux 檔案屬性及檔案配置(轉)Linux
- spring cloud+spring boot 電子商務spring boot獲取配置檔案的屬性CloudSpring Boot
- Java系列-如何讀取.properties屬性檔案Java
- javascript 獲取iframe中內容JavaScript
- JavaScript 獲取 checked 屬性值JavaScript
- opencv 獲取影像的屬性OpenCV
- javascript如何獲取屬性值JavaScript
- 檔案屬性
- jQuery - 設定內容和屬性jQuery
- js如何獲取給定屬性的屬性值JS