Skip to main content
All docs
V25.1
  • .NET Framework 4.6.2+

    IsGrantedExtensions.CanRead<T>(IRequestSecurityStrategy, IObjectSpace, Object, String) Method

    Checks whether the current user can read an object with the specified key. If the optional memberName parameter is specified, the method checks whether the current user can read the specified object member.

    Namespace: DevExpress.ExpressApp.Security

    Assembly: DevExpress.ExpressApp.Security.v25.1.dll

    Declaration

    public static bool CanRead<T>(
        this IRequestSecurityStrategy security,
        IObjectSpace objectSpace,
        object targetObjectKey,
        string memberName = null
    )

    Parameters

    Name Type Description
    security IRequestSecurityStrategy

    An object that specifies the application’s security strategy.

    objectSpace IObjectSpace

    An Object Space used to obtain data to calculate this security criterion.

    targetObjectKey Object

    The object’s key.

    Optional Parameters

    Name Type Default Description
    memberName String null

    A name of the target object’s member to check.

    Type Parameters

    Name Description
    T

    The object’s type.

    Returns

    Type Description
    Boolean

    true, if the current user can read the object or its member; otherwise, false.

    Remarks

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Security;
    using System;
    // ...
    public class CheckReadPermissionController : ObjectViewController<ListView, Contact> {
        SecurityStrategy securityStrategy;
        protected override void OnActivated() {
            base.OnActivated();
            securityStrategy = Application.GetSecurityStrategy();
            View.CurrentObjectChanged += View_CurrentObjectChanged;
        }
        private void View_CurrentObjectChanged(object sender, EventArgs e) {
        Department department = ViewCurrentObject.Department;
            if (department != null) {
                object key = ObjectSpace.GetKeyValue(department);
                if (!securityStrategy.CanRead<Department>(ObjectSpace, key, nameof(Department.Office))) {
                    // ...
                }
            }
        }
    }
    
    See Also