Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / clr / src / BCL / System / Security / Permissions / IsolatedStorageFilePermission.cs / 1 / IsolatedStorageFilePermission.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // Purpose : This permission is used to controls/administer access to // IsolatedStorageFile // namespace System.Security.Permissions { using System.Globalization; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] sealed public class IsolatedStorageFilePermission : IsolatedStoragePermission, IBuiltInPermission { public IsolatedStorageFilePermission(PermissionState state) : base(state) { } internal IsolatedStorageFilePermission(IsolatedStorageContainment UsageAllowed, long ExpirationDays, bool PermanentData) : base(UsageAllowed, ExpirationDays, PermanentData) { } //------------------------------------------------------ // // IPERMISSION IMPLEMENTATION // //----------------------------------------------------- public override IPermission Union(IPermission target) { if (target == null) { return this.Copy(); } else if (!VerifyType(target)) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName) ); } IsolatedStorageFilePermission operand = (IsolatedStorageFilePermission)target; if (this.IsUnrestricted() || operand.IsUnrestricted()) { return new IsolatedStorageFilePermission( PermissionState.Unrestricted ); } else { IsolatedStorageFilePermission union; union = new IsolatedStorageFilePermission( PermissionState.None ); union.m_userQuota = max(m_userQuota,operand.m_userQuota); union.m_machineQuota = max(m_machineQuota,operand.m_machineQuota); union.m_expirationDays = max(m_expirationDays,operand.m_expirationDays); union.m_permanentData = m_permanentData || operand.m_permanentData; union.m_allowed = (IsolatedStorageContainment)max((long)m_allowed,(long)operand.m_allowed); return union; } } public override bool IsSubsetOf(IPermission target) { if (target == null) { return ((m_userQuota == 0) && (m_machineQuota == 0) && (m_expirationDays == 0) && (m_permanentData == false) && (m_allowed == IsolatedStorageContainment.None)); } try { IsolatedStorageFilePermission operand = (IsolatedStorageFilePermission)target; if (operand.IsUnrestricted()) return true; return ((operand.m_userQuota >= m_userQuota) && (operand.m_machineQuota >= m_machineQuota) && (operand.m_expirationDays >= m_expirationDays) && (operand.m_permanentData || !m_permanentData) && (operand.m_allowed >= m_allowed)); } catch (InvalidCastException) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName) ); } } public override IPermission Intersect(IPermission target) { if (target == null) return null; else if (!VerifyType(target)) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName) ); } IsolatedStorageFilePermission operand = (IsolatedStorageFilePermission)target; if(operand.IsUnrestricted()) return Copy(); else if(IsUnrestricted()) return target.Copy(); IsolatedStorageFilePermission intersection; intersection = new IsolatedStorageFilePermission( PermissionState.None ); intersection.m_userQuota = min(m_userQuota,operand.m_userQuota); intersection.m_machineQuota = min(m_machineQuota,operand.m_machineQuota); intersection.m_expirationDays = min(m_expirationDays,operand.m_expirationDays); intersection.m_permanentData = m_permanentData && operand.m_permanentData; intersection.m_allowed = (IsolatedStorageContainment)min((long)m_allowed,(long)operand.m_allowed); if ((intersection.m_userQuota == 0) && (intersection.m_machineQuota == 0) && (intersection.m_expirationDays == 0) && (intersection.m_permanentData == false) && (intersection.m_allowed == IsolatedStorageContainment.None)) return null; return intersection; } public override IPermission Copy() { IsolatedStorageFilePermission copy ; copy = new IsolatedStorageFilePermission(PermissionState.Unrestricted); if(!IsUnrestricted()){ copy.m_userQuota = m_userQuota; copy.m_machineQuota = m_machineQuota; copy.m_expirationDays = m_expirationDays; copy.m_permanentData = m_permanentData; copy.m_allowed = m_allowed; } return copy; } ///int IBuiltInPermission.GetTokenIndex() { return IsolatedStorageFilePermission.GetTokenIndex(); } internal static int GetTokenIndex() { return BuiltInPermissionIndex.IsolatedStorageFilePermissionIndex; } //----------------------------------------------------- // // IsolatedStoragePermission OVERRIDES // //----------------------------------------------------- [System.Runtime.InteropServices.ComVisible(false)] public override SecurityElement ToXml() { return base.ToXml( "System.Security.Permissions.IsolatedStorageFilePermission" ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KnownBoxes.cs
- entitydatasourceentitysetnameconverter.cs
- MessageCredentialType.cs
- MaskedTextBoxTextEditor.cs
- SessionPageStatePersister.cs
- WindowsAuthenticationEventArgs.cs
- SecurityChannelFactory.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- Logging.cs
- SynthesizerStateChangedEventArgs.cs
- StateMachineTimers.cs
- DataControlFieldCollection.cs
- CryptoStream.cs
- TextEmbeddedObject.cs
- ThreadNeutralSemaphore.cs
- Schedule.cs
- Substitution.cs
- DateTimeOffsetStorage.cs
- RefreshEventArgs.cs
- LogLogRecordEnumerator.cs
- OutputCacheProfileCollection.cs
- IdentityVerifier.cs
- XmlComplianceUtil.cs
- ProfileProvider.cs
- BooleanFunctions.cs
- BooleanKeyFrameCollection.cs
- AppSettingsReader.cs
- AppDomain.cs
- MeasurementDCInfo.cs
- DetailsViewDeletedEventArgs.cs
- CompilationPass2TaskInternal.cs
- SubqueryRules.cs
- PartialCachingAttribute.cs
- XpsThumbnail.cs
- XmlName.cs
- KeyedCollection.cs
- XhtmlStyleClass.cs
- HttpProfileBase.cs
- InkCanvas.cs
- RoutedEvent.cs
- Effect.cs
- TextServicesContext.cs
- LineServices.cs
- XmlDictionaryWriter.cs
- ScriptMethodAttribute.cs
- InstanceKeyCompleteException.cs
- Calendar.cs
- ProcessModule.cs
- CngAlgorithmGroup.cs
- RenderContext.cs
- EditorPartChrome.cs
- PresentationTraceSources.cs
- FieldToken.cs
- ReadOnlyTernaryTree.cs
- WebErrorHandler.cs
- ParsedAttributeCollection.cs
- IsolationInterop.cs
- TextContainer.cs
- CommandBinding.cs
- XpsResourceDictionary.cs
- TextViewBase.cs
- TransferRequestHandler.cs
- LogRestartAreaEnumerator.cs
- ValueProviderWrapper.cs
- FormatConvertedBitmap.cs
- PrePrepareMethodAttribute.cs
- BaseAddressElementCollection.cs
- SQLMoneyStorage.cs
- JsonClassDataContract.cs
- FontEditor.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- TextServicesPropertyRanges.cs
- DesignerDataStoredProcedure.cs
- FileRecordSequenceCompletedAsyncResult.cs
- ActivityValidator.cs
- ToolStripAdornerWindowService.cs
- SelectionRange.cs
- MediaTimeline.cs
- StrongNamePublicKeyBlob.cs
- EntityFunctions.cs
- GroupItemAutomationPeer.cs
- DataReaderContainer.cs
- EmptyEnumerator.cs
- ProvideValueServiceProvider.cs
- OleDbPermission.cs
- AdjustableArrowCap.cs
- ConfigXmlSignificantWhitespace.cs
- URI.cs
- SystemResourceHost.cs
- HostingEnvironment.cs
- ClipboardData.cs
- RootBrowserWindowProxy.cs
- TimeoutValidationAttribute.cs
- TransformCollection.cs
- URLIdentityPermission.cs
- Stream.cs
- HelpProvider.cs
- PopupEventArgs.cs
- UnmanagedMarshal.cs
- ReachUIElementCollectionSerializerAsync.cs