public void Initialize(IPermissionSetBuilder permissionSetBuilder)
        {
            if (permissionSetBuilder == null)
            {
                throw new ArgumentNullException(nameof(permissionSetBuilder));
            }

            // A custom IAnonymousRolePermissionConfiguration implementation can optionally be defined
            // which overrides the base implementation in the definition.
            var anonymousRolePermissionConfiguration = _serviceProvider.GetService <IEnumerable <IAnonymousRolePermissionConfiguration> >();

            if (EnumerableHelper.IsNullOrEmpty(anonymousRolePermissionConfiguration))
            {
                var anonymousRole = new AnonymousRole();
                anonymousRole.ConfigurePermissions(permissionSetBuilder);
            }
            else if (anonymousRolePermissionConfiguration.Count() > 1)
            {
                throw new InvalidOperationException($"Expected a single implementation of {nameof(IAnonymousRolePermissionConfiguration)} but encountered {anonymousRolePermissionConfiguration.Count()}. Only one implementation is permitted.");
            }
            else
            {
                anonymousRolePermissionConfiguration
                .First()
                .ConfigurePermissions(permissionSetBuilder);
            }
        }
示例#2
0
        public ViewResult Anonymous()
        {
            var role = new AnonymousRole();

            return(ViewDetail(role, role.GetFeaturePermissions(typeof(AnonymousUnclassifiedFeature)), role.RoleDisplayName));
        }