NFX.Security NamespaceNFX Class Library

[This is preliminary documentation and is subject to change.]

Defines fundamental security types like users and permissions
Classes

  ClassDescription
Public classAccessLevel
A level of access granted to user for certain permission, i.e. if (level.Denied).....
Public classAdHocPermission
Represents a permission check instance which is a-typical and is based on string arguments
Public classAuthorizationException
Base exception thrown by the security framework
Public classBlankCredentials
Represents credentials that are absent. This is a singleton class
Public classConfigSecurityManager
Provides security manager implementation that authenticates and authorizes users from configuration
Public classCredentials
User credentials base class. A credentials may be as simple as user+password, access card codes, door key, Twitter account token etc...
Public classDefaultPasswordManager
Provides default implementation for password managment functionality based on injectable algorithms and default password strength calculation
Public classGDIDCredentials
Represents credentials based on Global Distributed ID
Public classHashedPassword
Represents abstraction of a hashed password, the concreate password algorithm provide implementation (i.e. bytebuffer, dictionary, string)
Public classIDPasswordCredentials
Represents simple ID/password textual credentials. Note: The password is stored as plain text
Public classMD5PasswordHashingAlgorithm
Public classNOPSecurityManager
Provides security manager implementation that does nothing and always returns fake user instance
Public classPasswordHashingAlgorithm
Represents an abstraction of password algorithm that performs hashing and verification of passwords supplied as SecureBuffer
Public classPasswordHashingAlgorithm TOptions 
Public classPasswordRepresentation
Provides password representation content, i.e. an image with drawn password which is understandable by humans
Public classPermission
Represents a general permission abstraction - where permission type represents the path/name of the permission in User's rights and .ctor takes specific parameters to check while authorizing user. Permission-derived class represents a certain permission type, whereas its instance is a check for particular desired level. To authorize certain actions, one creates an instance of Permission-derived class passing in its .ctor required access levels, then calls a Check() method that returns true if action is authorized. This scheme provides a great deal of flexibility, i.e. for very complex security cases developers may inherit leaf-level permissions from intermediate ones that have logic tied to session-level variables, this way user's access may vary by permission/session state, i.e. a user may have "Patient.Master" level 4 access in database "A", while having acess denied to the same named permission in database "B". User's database, or system instance is a flag in user-session context
Public classRights
User rights contains data about access levels to permissions in the system. Use Configuration internally to keep the data organized in hierarchical navigable structure. Configuration also allows to cross-link permission levels using vars and make acess level dependent on settings on a particular machine using environmental vars
Public classSecureBuffer
Public classSecurityException
Base exception thrown by the Security framework
Public classSocialNetTokenCredentials
Represents credentials supplied from/to Social Net site (i.e. Facebook, Twitter etc.)
Public classTypedPermission
A general ancestor for all typed permissions - the ones declared in code
Public classUser
Provides base user functionality. Particular security manager implementations may return users derived from this class
Structures

  StructureDescription
Public structureAuthenticationToken
Represents security provider-internal ID that SecurityManager assigns into User object on authentication. These tokens can be used in place of Credentials to re-authenticate users or to requery user rights. External parties should never be supplied with this struct as it is backend-internal
Public structureMD5PasswordHashingOptions
Interfaces

  InterfaceDescription
Public interfaceIPasswordHashingOptions
Public interfaceIPasswordManager
Denoutes an entity that manages passwords such as: computes and verified hash tokens and provides password strength verification
Public interfaceIPasswordManagerImplementation
Public interfaceISecurityException
Marker interface for security exceptions
Public interfaceISecurityManager
Represents an entity that performs user authentication based on passed credentials and other security-related global tasks
Public interfaceISecurityManagerImplementation
Represents an implementation of an entity that performs user authentication based on passed credentials and other security-related global tasks
Public interfaceIStringRepresentableCredentials
Denotes credentials that can be represented as a string that can be used for example in Authorization header
Delegates

  DelegateDescription
Public delegateGetSessionFunc
Invoked by permission checker to get session
Enumerations

  EnumerationDescription
Public enumerationPasswordFamily
Denoutes kinds of passwords i.e.: text that user types on login, short PIN, geometrical curve that users need to trace with their finger, select areas of picture
Public enumerationPasswordRepresentationType
Flags denote types of password representation: Text/Image/Audio
Public enumerationPasswordStrengthLevel
Public enumerationUserStatus
User status enumeration - super-permission levels