[This is preliminary documentation and is subject to change.]
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
System Object
System Attribute NFX.Security Permission NFX.Security AdHocPermission NFX.Security TypedPermissionNamespace: NFX.SecurityAssembly: NFX (in NFX.dll) Version: 3.0.0.1 (3.0.0.1)
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface, Inherited = true,
AllowMultiple = true)]
public abstract class Permission : Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface, Inherited = true,
AllowMultiple = true)]
public abstract class Permission : Attribute
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Constructor Or AttributeTargets.Method Or AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Interface, Inherited := true,
AllowMultiple := true)>
Public MustInherit Class Permission
Inherits Attribute
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Constructor Or AttributeTargets.Method Or AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Interface, Inherited := true,
AllowMultiple := true)>
Public MustInherit Class Permission
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Constructor|AttributeTargets::Method|AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Interface, Inherited = true,
AllowMultiple = true)]
public ref class Permission abstract : public Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Constructor|AttributeTargets::Method|AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Interface, Inherited = true,
AllowMultiple = true)]
public ref class Permission abstract : public Attribute
[<AbstractClassAttribute>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface, Inherited = true,
AllowMultiple = true)>]
type Permission =
class
inherit Attribute
end
[<AbstractClassAttribute>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface, Inherited = true,
AllowMultiple = true)>]
type Permission =
class
inherit Attribute
end