Ejemplo n.º 1
0
        public bool CheckAuthorization(string applicationName, IEnumerable <IAuthOperation> operations)
        {
            Dictionary <string, IList <IAuthOperation> > operationDictionary = new Dictionary <string, IList <IAuthOperation> >();

            foreach (IAuthOperation operation in operations)
            {
                if (!operationDictionary.ContainsKey(operation.Operation))
                {
                    operationDictionary.Add(operation.Operation, new List <IAuthOperation>());
                }

                operationDictionary[operation.Operation].Add(operation);
            }

            BackendAuthService.CheckAuthorizationRequest checkAuthRequest = new BackendAuthService.CheckAuthorizationRequest();

            checkAuthRequest.CheckAuthorizationParameters = new BackendAuthDataContracts.CheckAuthorizationParameters();
            checkAuthRequest.CheckAuthorizationParameters.AuthorizationProvider = applicationName;

            BackendAuthDataContracts.AuthOperationCollection authOperations = new BackendAuthDataContracts.AuthOperationCollection();

            foreach (string operation in operationDictionary.Keys)
            {
                BackendAuthDataContracts.AuthOperation authOperation = new BackendAuthDataContracts.AuthOperation();
                authOperation.Operation = operation;
                authOperations.Add(authOperation);
            }

            checkAuthRequest.CheckAuthorizationParameters.Operations = authOperations;

            BackendAuthService.CheckAuthorizationResponse checkAuthResponse = AuthService.CheckAuthorization(checkAuthRequest);

            foreach (BackendAuthDataContracts.AuthOperation operationResponse in checkAuthResponse.CheckAuthorizationResult.Operations)
            {
                IList <IAuthOperation> operationList = operationDictionary[operationResponse.Operation];

                foreach (IAuthOperation operation in operationList)
                {
                    operation.IsAuthorized = operationResponse.IsAuthorized;
                }
            }

            return(checkAuthResponse.CheckAuthorizationResult.IsAuthorizationEnabled);
        }
        public static Service.CheckAuthorizationResult TranslateFromBusinessToService(Business.CheckAuthorizationResult businessEntity)
        {
            Service.CheckAuthorizationResult result = new Service.CheckAuthorizationResult();

            result.IsAuthorizationEnabled = businessEntity.IsAuthorizationEnabled;
            result.Operations             = new Service.AuthOperationCollection();

            foreach (Business.AuthOperation businessOperation in businessEntity.Operations)
            {
                Service.AuthOperation serviceOperation = new Service.AuthOperation()
                {
                    Operation    = businessOperation.Operation,
                    IsAuthorized = businessOperation.IsAuthorized
                };

                result.Operations.Add(serviceOperation);
            }

            return(result);
        }