Click or drag to resize
OSIsoft, LLC

PIIdentities Class

The PIIdentities collection represents the available PIIdentity objects on a particular PIServer.

Inheritance Hierarchy
SystemObject
  OSIsoft.AF.PIPIIdentities

Namespace:  OSIsoft.AF.PI
Assembly:  OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 2.10.8.440
Syntax
public sealed class PIIdentities : IList<PIIdentity>, 
	ICollection<PIIdentity>, IEnumerable<PIIdentity>, IEnumerable, 
	IList, ICollection

The PIIdentities type exposes the following members.

Properties
  NameDescription
Public propertyCount
Gets the number of items actually contained in the collection.
Public propertyItemInt32
Gets or sets the item at the specified index.
Public propertyItemString
Returns the specified object from the collection by name.
Public propertyServer
The PIServer for this PIIdentities collection.
Top
Methods
  NameDescription
Public methodAdd
Creates a new PIIdentity with the passed in name.
Public methodContains(String)
This method determines whether the collection contains a specific item referenced by name.
Public methodContains(PIIdentity)
This method determines whether the collection contains a specific item.
Public methodCopyTo
Copies the entire collection to a compatible one-dimensional Array, starting at the specified index of the target array.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodGetEnumerator
Returns an enumerator that iterates through the collection.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIndexOf
Searches for the specified object and returns the zero-based index of the first occurrence within the entire collection.
Public methodRefresh
Refresh the collection by loading from the PIServer.
Public methodRemove(String)
Removes a PIIdentity from the PI Data Archive by name
Public methodRemove(PIIdentity)
Removes a PIIdentity from the PI Data Archive
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Extension Methods
Exceptions
ExceptionCondition
PIVersionNotSupportedException This exception will be generated if PIServer does not support PIIdentity.
Remarks
The PIIdentities collection consist of the PI Identities, PI Users and PI Groups that are configured on a PIServer. PI Identities are used to define authentication methods to the server. Once authenticated, access permissions on PI Data Archive objects define authorization against all three types of identities: PI Identities, PI Users, and PI Groups.
Examples
// Get the PIIdentities from the PIServer on the local computer
PISystems myPISystems = new PISystems();
PISystem myPISystem = myPISystems.DefaultPISystem;
PIServer myPIServer = PIServer.FindPIServer(myPISystem, piServerName);

// Display information about each PIIdentity and its properties
PIIdentities identities = myPIServer.Identities;
Console.WriteLine("Found {0} identities", identities.Count);
foreach (PIIdentity identity in identities)
{
    Console.WriteLine(identity.Name);
    Console.WriteLine("  IdentityType: {0}", identity.IdentityType);
    Console.WriteLine("  Description: {0}", identity.Description);
    Console.WriteLine("  AllowExplicitLogin: {0}", identity.AllowExplicitLogin);
    Console.WriteLine("  AllowMappings: {0}", identity.AllowMappings);
    Console.WriteLine("  AllowTrusts: {0}", identity.AllowTrusts);
    Console.WriteLine("  IsEnabled: {0}", identity.IsEnabled);
    Console.WriteLine();
}

// Add an identity of PIIdentity type, if it does not yet exist.
string newIdName = "PIIdentityTestExample";
PIIdentity newId;
if (!identities.Contains(newIdName))
{
    // Note that adding or editing an identity requires 'CheckIn' in order to commit it to the PI Data Archive.
    newId = identities.Add(newIdName, PIIdentityType.PIIdentity);
    newId.CheckIn();
}
else 
    newId = identities[newIdName];

Console.WriteLine(newId.Name);
Console.WriteLine("  IdentityType: {0}", newId.IdentityType);
Console.WriteLine("  Description: {0}", newId.Description);
Console.WriteLine("  AllowExplicitLogin: {0}", newId.AllowExplicitLogin);
Console.WriteLine("  AllowMappings: {0}", newId.AllowMappings);
Console.WriteLine("  AllowTrusts: {0}", newId.AllowTrusts);
Console.WriteLine("  IsEnabled: {0}", newId.IsEnabled);
Console.WriteLine();

// Edit an identity.
newId.Description = "This is a PIIdentity for Test Example";
newId.CheckIn();

Console.WriteLine(newId.Name);
Console.WriteLine("  Description: {0}", newId.Description);
Console.WriteLine();

// Delete an identity. 
// Note that the 'Remove' call will be directly committed to the PI Data Archive.
identities.Remove(newId);
Version Information

AFSDK

Supported in: 2.10.5, 2.10, 2.9.5, 2.9, 2.8.5, 2.8, 2.7.5, 2.7, 2.6
See Also
Enabling Operational Intelligence