Find All Privileges for a User
This sample finds all the privileges a user can access through their assigned roles.
Class Reference
Example
[C#]
public void GetUserPrivileges()
{
// strServer should be set with the name of the platform Web server
String strServer = "MyServerName";
// strVirtualDirectory should be set with the name of the Microsoft CRM
// virtual directory on the platform Web server
String strVirtualDirectory = "mscrmservices";
// Create the URL to the SRF files for platform objects
String strDir = String.Concat("https://", strServer, "/",
strVirtualDirectory, "/");
// BizUser proxy object
Microsoft.Crm.Platform.Proxy.BizUser bizUser
= new Microsoft.Crm.Platform.Proxy.BizUser ();
bizUser.Credentials = System.Net.CredentialCache.DefaultCredentials;
bizUser.Url = String.Concat(strDir, "BizUser.srf")
// SecRole proxy object
Microsoft.Crm.Platform.Proxy.BizPrivilege privilege
= new Microsoft.Crm.Platform.Proxy.BizPrivilege ();
privilege.Credentials = System.Net.CredentialCache.DefaultCredentials;
privilege.Url = String.Concat(strDir, "BizPrivilege.srf");
String strErrorMsg;
Microsoft.Crm.Platform.Proxy.CRolePrivilege [] rolePrivResult = null;
try
{
// Get the UserAuth of the currently logged on user
Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI();
// Retrieve all privileges of the caller user from the business
// to which he or she belongs
rolePrivResult = privilege.RetrieveUserPrivileges(userAuth,
userAuth.UserId);
}
catch (System.Web.Services.Protocols.SoapException err)
{
// Process the platform error here
strErrorMsg = String.Concat("ErrorMessage: ", err.Message, " ",
err.Detail.OuterXml, " Source: ", err.Source);
}
}