Two key objects closely associated with security in .NET are identities and principal objects. An identity represents a user's identity and the method used to authenticate the user . Two identity classes are provided by default in .NET. The GenericIdentity is a generic implementation of the IIdentity interface that is not specific to any particular type of authentication. It implements the required interface and no more. The WindowsIdentity is an implementation of IIdentity that adds more methods and properties particular to Windows-based authentication.