UserIdentity inheritance

Quick question:

Why does the class CBaseUserIdentity define:



As I understood based on the guide, the whole idea of having a useridentity is to allow multiple forms of authentication, not only username/password-based authentication.

Then these specific errors do not belong in this baseclass but should be defined in the child class CUserIdentity which also defines username and password properties.

Or does anybody know of a reason to put these definitions in this abstract base class?

I think you have a point here. Only ERROR_NONE (and maybe ERROR_UNKOWN_IDENTITY) fit in this base class. Since CUserIdentity describes itself as "base class for representing identities that are authenticated based on a username and a password" it might be the better candidate for these two constants.