Share via


CRMActivity.RetrieveSharedPrincipalsAndAccess Method

The RetrieveSharedPrincipalsAndAccess method retrieves all the security principals (users or teams) that have access to an activity, along with what access they have.

Syntax

[Visual Basic .NET]
Public Function RetrieveSharedPrincipalsAndAccess(
  ByVal Caller As CUserAuth,
  ByVal ActivityId As String,
  ByRef Rights As UInt32()
) As CSecurityPrincipal()

[C#]
public CSecurityPrincipal[] RetrieveSharedPrincipalsAndAccess(
  CUserAuth  Caller,
  string  ActivityId,
  out uint[]  Rights
);

[C++]
public: CSecurityPrincipal* RetrieveSharedPrincipalsAndAccess(
  CUserAuth*  Caller,
  String*  ActivityId,
  unsigned long*  Rights
)  __gc[];

Parameters

Caller

Specifies the identity of the caller. The caller must have the prvReadActivity privilege to perform this action. See CUserAuth.

ActivityId

Specifies the ID of the activity.

Rights

[out]  Specifies the array of rights requested. See ACCESSRIGHTS.

Return Value

Returns a CSecurityPrincipal[] type that specifies the array of principals requested. See CSecurityPrincipal.

Remarks

If there is an error, SOAP throws an exception and the error message is reported in System.Web.Services.Protocols.SoapException.Detail.OuterXml.

All IDs passed to the platform are GUIDs wrapped in braces. For example: {6522D89A-A752-4455-A2B0-51494C6957C3}

Example

[C#]
// strServer should be set with the name of the platform Web server
string strServer = "myservername";

// virtualDirectory should be set with the name of the Microsoft CRM
// virtual directory on the platform Web server
string virtualDirectory = "mscrmservices";
string strDir = "https://" + strServer + "/" + virtualDirectory + "/";

// BizUser proxy object
Microsoft.CRM.Proxy.BizUser bizUser = new Microsoft.CRM.Proxy.BizUser ();
bizUser.Credentials = System.Net.CredentialCache.DefaultCredentials;
bizUser.Url = strDir + "BizUser.srf";

// CRMActivity proxy object
Microsoft.CRM.Proxy.CRMActivity activity = new Microsoft.CRM.Proxy.CRMActivity ();
activity.Credentials = System.Net.CredentialCache.DefaultCredentials;
activity.Url = strDir + "CRMActivity.srf";

string strErrorMsg;
uint[] rights;
string strActivityId = "{33A081D8-ABFF-4103-9E9B-DB0A4B1FD48E}";
try
{
   Microsoft.CRM.Proxy.CUserAuth userAuth = bizUser.WhoAmI();

   Microsoft.CRM.Proxy.CUserAuth userAuth = bizUser.WhoAmI();
   
   // Retrieve the shared principals and their access
   Microsoft.CRM.Proxy.CSecurityPrincipal[] securityPrincipals = activity.RetrieveSharedPrincipalsAndAccess(userAuth, strActivityId, out rights);
}
catch (System.Web.Services.Protocols.SoapException err)
{
   // Process the platform error here
   strErrorMsg = ("ErrorMessage: " + err.Message + " " + err.Detail.OuterXml + " Source: " + err.Source );
}
catch (Exception err)
{
   // Process other errors here
   strErrorMsg = ("ErrorMessage: " + err.Message );
}

Requirements

Namespace: Microsoft.CRM.Proxy

Assembly: microsoft.crm.proxy.dll

See Also

© 2003 Microsoft Corporation. All rights reserved.