UserProfileManager Class
A collection of UserProfile objects used to access user profile data. To access a specific user profile, call the UserProfileManager class to create a UserProfile object and retrieve the corresponding data from the user profile database.
Inheritance Hierarchy
System.Object
Microsoft.Office.Server.UserProfiles.UserProfileManager
Namespace: Microsoft.Office.Server.UserProfiles
Assembly: Microsoft.Office.Server (in Microsoft.Office.Server.dll)
Syntax
'Declaration
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.Demand, ObjectModel := True)> _
Public Class UserProfileManager _
Implements IEnumerable
'Usage
Dim instance As UserProfileManager
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.Demand, ObjectModel = true)]
public class UserProfileManager : IEnumerable
Remarks
You must create the UserProfileManager object before accessing a UserProfile object. You can then retrieve the user profiles to which the user has access. Full access to everyone's user profile requires "Manage User Profiles" rights. Full access to your own profile requires "Use Personal Features" rights. Everyone has read access to all profiles
You must use the UserProfileConfigManager class object instead of the UserProfileManager object to manage metadata. The metadata access provided by the UserProfileManager object is meant to be read-only.
Examples
The following code example shows the use of the UserProfileManager class.
[Visual Basic]
Public Sub UserProfileSample()
'get portal site context from topology
Dim strUrl As String = "http://SampleName"
Dim tm As New TopologyManager()
Dim ps As PortalSite = tm.PortalSites(New Uri(strUrl))
Dim pc As PortalContext = PortalApplication.GetContext(ps)
'initialize user profile config manager object
Dim upm As New UserProfileManager(pc)
'create user sample
Dim sAccount As String = "mydomain\myalias"
If Not upm.UserExists(sAccount) Then
upm.CreateUserProfile(sAccount)
End If
'to set prop values on user profile
Dim u As UserProfile = upm.GetUserProfile(sAccount)
Dim sPropName As String = "PreferredName"
u(sPropName) = sAccount
u.Commit()
'remove user profile sample
upm.RemoveUserProfile(sAccount)
End Sub 'UserProfileSample
Public Sub CreatePersonalSiteSample()
'get portal site context from topology
Dim strUrl As String = "http://SampleName"
Dim tm As New TopologyManager()
Dim ps As PortalSite = tm.PortalSites(New Uri(strUrl))
Dim pc As PortalContext = PortalApplication.GetContext(ps)
'initialize user profile config manager object
Dim upm As New UserProfileManager(pc)
Dim sAccount As String = "mydomain\myalias"
Dim u As UserProfile = upm.GetUserProfile(sAccount)
u.CreatePersonalSite()
Dim mysite As SPSite = u.PersonalSite
Dim myurl As String = u.PersonalUrl
End Sub 'CreatePersonalSiteSample
[C#]
public void UserProfileSample()
{
//get portal site context from topology
string strUrl = "http://SampleName";
TopologyManager tm = new TopologyManager();
PortalSite ps = tm.PortalSites[new Uri(strUrl)];
PortalContext pc = PortalApplication.GetContext(ps);
//initialize user profile config manager object
UserProfileManager upm = new UserProfileManager(pc);
//create user sample
string sAccount = "mydomain\\myalias";
if (!upm.UserExists(sAccount))
upm.CreateUserProfile(sAccount);
//to set prop values on user profile
UserProfile u = upm.GetUserProfile(sAccount);
string sPropName = "PreferredName";
u[sPropName] = sAccount;
u.Commit();
//remove user profile sample
upm.RemoveUserProfile(sAccount);
}
public void CreatePersonalSiteSample()
{
//get portal site context from topology
string strUrl = "http://SampleName";
TopologyManager tm = new TopologyManager();
PortalSite ps = tm.PortalSites[new Uri(strUrl)];
PortalContext pc = PortalApplication.GetContext(ps);
//initialize user profile config manager object
UserProfileManager upm = new UserProfileManager(pc);
string sAccount = "mydomain\\myalias";
UserProfile u = upm.GetUserProfile(sAccount);
u.CreatePersonalSite();
SPSite mysite = u.PersonalSite;
string myurl = u.PersonalUrl;
}
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.