2010-11-03 73 views
-1

SharePoint 2010更多地使用該員工的照片。在我的公司,員工照片由祕書管理,並被視爲人力資源數據的一部分。我們必須根據該調整大小,並返回員工的照片方便的網絡服務登錄:Sharepoint 2010 - 我可以重新鏈接用戶照片網址嗎?

 
http://services.domain.com/photo.ashx?login=kobi&width=64&height=64 

什麼是‘重新連接’所有SharePoint照片到該服務的好辦法?我想避免將所有照片上傳到/my網站,或者更新Active Directory - 我正在尋找全代碼解決方案。

我可以重寫顯示照片的部分嗎?如果沒有,可以重寫所有用戶的照片網址?

看起來像SharePoint使用ProfilePropertyImageMicrosoft.SharePoint.Portal.dll - 我真正想做的是讓SharePoint使用我的控制,而不是。這太樂觀了嗎?

回答

2

有一個小的STSADM腳本,用自定義URL和用戶ID更改用戶圖像URL。它是爲Sharepoint 2007製作的,但是對於SP2010來說可能是一個簡單的改變?事實上,它甚至看起來可以從它製作一個小控制檯應用程序。

也許你感興趣的用戶圖像(2007年再次共享點)的自定義HTTP處理程序?

對於2010年的SharePoint,你可能要考慮用戶配置文件同步服務,也許您可​​以將特殊圖像的URL連接到配置文件不知何故?

+0

第一個鏈接看起來像我所需要的,但如果我理解正確,需要定期爲所有員工運行命令。我會研究一下,謝謝。我希望能夠進入SharePoint,但... – Kobi 2010-11-03 12:33:14

+0

最後,它掛鉤到Sharepoint,只是使用STSADM來運行命令。通過查看可用的Source,我可以看到所有的代碼都在SetPictureUrlNewPath.cs中設置「PictureURL」:SetPicture(profile [「PictureURL」],librarypath))'。下載頁面在這裏:http://stsadm.blogspot.com/2009/02/downloads.html如果你想讓它自動運行,你可以爲你的更新命令創建一個計時器/時間表。 – 2010-11-03 14:23:31

1

如果您使用的是帶有UserProfileManager的的UserProfiles那麼你可以在導入配置文件手動設置該屬性。您可以從任何系統設置導入,然後在創建用戶配置文件時,只需將PictureUrl字段設置爲您的自定義URL即可。您可以使用簡單控制檯應用程序中的批處理作業來更好地控制導入,而不是使用內置概要文件同步。您可以從.exe運行此代碼,作爲來自各種系統的夜間配置文件更新的一部分。

SPServiceContext serviceContext = SPServiceContext.GetContext(topSite); 
UserProfileManager profileMgr = ProfileLoader.GetProfileLoader(serviceContext).GetUserProfileManager(); 
UserProfile curUser = null; 
if (profileMgr.UserExists(userId)) 
{ 
    curUser = profileMgr.GetUserProfile(userId); 
} 
else 
{ 
    curUser = profileMgr.CreateUserProfile(userId); 
} 
//Set lots of other properties here 
curUser[PropertyConstants.PictureUrl].Value = "http://services.domain.com/photo.ashx?login=" + userId + "&width=64&height=64"; 
curUser.Commit(); 

這將設置PicureUrl屬性自定義URL和你沒有上傳所有的照片。

相關問題