PIIdentity Class
- Last UpdatedJan 12, 2026
- 7 minute read
- PI System
- AF SDK 3.2.0
- Developer
The PIIdentity object represents an identity on a PIServer.

Inheritance Hierarchy
SystemObject
OSIsoft.AF.PIPIIdentity
OSIsoft.AF.PIPIIdentity
Namespace: OSIsoft.AF.PI
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.2.0.7
Syntax
public sealed class PIIdentity : IComparable, IComparable<PIIdentity>, IEquatable<PIIdentity>
Public NotInheritable Class PIIdentity Implements IComparable, IComparable(Of PIIdentity), IEquatable(Of PIIdentity) Dim instance As PIIdentity
public ref class PIIdentity sealed : IComparable, IComparable<PIIdentity^>, IEquatable<PIIdentity^>
[<SealedAttribute>] type PIIdentity = class interface IComparable interface IComparable<PIIdentity> interface IEquatable<PIIdentity> end
The PIIdentity type exposes the following members.
Properties
| Name | Description | |
|---|---|---|
| AllowExplicitLogin |
This property determines if the PIIdentity can be used for an explicit login.
| |
| AllowMappings |
This property determines if the PIIdentity can be used in a Mapping.
| |
| AllowTrusts |
This property determines if the PIIdentity can be used in a Trust.
| |
| CanDelete |
This property determines if the PIIdentity can be deleted on the PIServer.
| |
| Description |
Read/write property that provides a description of the PIIdentity.
| |
| ID |
Read-only property that provides a unique identifier for the PIIdentity on the PIServer.
| |
| IdentityType |
This property identifies the type of PIIdentity.
| |
| IsDeleted |
This read-only property indicates whether the object has been deleted.
| |
| IsDirty |
This read-only property indicates whether the object has been modified since the last save to the PI Data Archive.
| |
| IsEnabled |
This property determines if the PIIdentity is enabled on the PIServer.
| |
| IsNew |
This read-only property indicates whether the object has been added into the collection but has not been saved to the PI Data Archive.
| |
| Name |
This property defines the name of the PIIdentity.
| |
| Server |
The PIServer for this PIIdentity.
|
Methods
| Name | Description | |
|---|---|---|
| CheckIn |
This method checks in (commits) all the changes to the object by saving the information to PI Data Archive.
| |
| CompareTo(Object) |
Compares this instance with a specified Object.
| |
| CompareTo(PIIdentity) |
Compares this instance with a specified PIIdentity.
| |
| Equals(Object) |
Determines whether the specified Object is equal to the current object.
(Overrides ObjectEquals(Object).) | |
| Equals(PIIdentity) |
Indicates whether the current object is equal to another object of the same type.
| |
| GetGroupMemberships |
Get all the PI Groups associated with this PIUser identity.
| |
| GetHashCode |
Gets the hash code for this instance of the object which is suitable for use in hashing
algorithms and data structures like a hash table.
(Overrides ObjectGetHashCode.) | |
| GetPIIdentityMappings |
Get all the PIIdentityMapping objects associated with this identity.
| |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| GetUserMemberships |
Get all the PI Users associated with this PIGroup identity.
| |
| SetGroupMemberships |
Set the PI Groups associated with this PIUser identity.
| |
| SetPassword |
Set the password associated with this PIUser identity.
| |
| ToString |
Returns a String that represents the current object.
(Overrides ObjectToString.) |
Operators
| Name | Description | |
|---|---|---|
| Equality |
The equality operator (==) compares its operands to determine if they are equal.
| |
| GreaterThan |
The greater than relation operator (>) compares its operands to determine
which one is greater than the other.
| |
| GreaterThanOrEqual |
The greater than or equal relation operator (>=) compares its operands to determine
which one is greater than or equal to the other.
| |
| Inequality |
The inequality operator (!=) compares its operands to determine if they are not equal.
| |
| LessThan |
The less than relation operator (<) compares its operands to determine
which one is less than the other.
| |
| LessThanOrEqual |
The less than or equal relation operator (<=) compares its operands to determine
which one is less than or equal to the other.
|
Remarks
A PIIdentity represents a PI Identity, PI User or PI Group on a PIServer.
A PI Identity is used to define an authentication path 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);