Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Permissions / IsolatedStoragePermission.cs / 1305376 / IsolatedStoragePermission.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// [....]
//
namespace System.Security.Permissions {
using System;
using System.IO;
using System.Security;
using System.Security.Util;
using System.Globalization;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum IsolatedStorageContainment {
None = 0x00,
DomainIsolationByUser = 0x10,
ApplicationIsolationByUser = 0x15,
AssemblyIsolationByUser = 0x20,
DomainIsolationByMachine = 0x30,
AssemblyIsolationByMachine = 0x40,
ApplicationIsolationByMachine = 0x45,
DomainIsolationByRoamingUser = 0x50,
AssemblyIsolationByRoamingUser = 0x60,
ApplicationIsolationByRoamingUser = 0x65,
AdministerIsolatedStorageByUser = 0x70,
//AdministerIsolatedStorageByMachine = 0x80,
UnrestrictedIsolatedStorage = 0xF0
};
[Serializable]
[SecurityPermissionAttribute( SecurityAction.InheritanceDemand, ControlEvidence = true, ControlPolicy = true )]
[System.Runtime.InteropServices.ComVisible(true)]
abstract public class IsolatedStoragePermission
: CodeAccessPermission, IUnrestrictedPermission
{
//------------------------------------------------------
//
// PRIVATE STATE DATA
//
//-----------------------------------------------------
///
internal long m_userQuota;
///
internal long m_machineQuota;
///
internal long m_expirationDays;
///
internal bool m_permanentData;
///
internal IsolatedStorageContainment m_allowed;
//-----------------------------------------------------
//
// CONSTRUCTORS
//
//-----------------------------------------------------
protected IsolatedStoragePermission(PermissionState state)
{
if (state == PermissionState.Unrestricted)
{
m_userQuota = Int64.MaxValue;
m_machineQuota = Int64.MaxValue;
m_expirationDays = Int64.MaxValue ;
m_permanentData = true;
m_allowed = IsolatedStorageContainment.UnrestrictedIsolatedStorage;
}
else if (state == PermissionState.None)
{
m_userQuota = 0;
m_machineQuota = 0;
m_expirationDays = 0;
m_permanentData = false;
m_allowed = IsolatedStorageContainment.None;
}
else
{
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPermissionState"));
}
}
internal IsolatedStoragePermission(IsolatedStorageContainment UsageAllowed,
long ExpirationDays, bool PermanentData)
{
m_userQuota = 0; // typical demand won't include quota
m_machineQuota = 0; // typical demand won't include quota
m_expirationDays = ExpirationDays;
m_permanentData = PermanentData;
m_allowed = UsageAllowed;
}
internal IsolatedStoragePermission(IsolatedStorageContainment UsageAllowed,
long ExpirationDays, bool PermanentData, long UserQuota)
{
m_machineQuota = 0;
m_userQuota = UserQuota;
m_expirationDays = ExpirationDays;
m_permanentData = PermanentData;
m_allowed = UsageAllowed;
}
//------------------------------------------------------
//
// PUBLIC ACCESSOR METHODS
//
//-----------------------------------------------------
// properties
public long UserQuota {
set{
m_userQuota = value;
}
get{
return m_userQuota;
}
}
#if false
internal long MachineQuota {
set{
m_machineQuota = value;
}
get{
return m_machineQuota;
}
}
internal long ExpirationDays {
set{
m_expirationDays = value;
}
get{
return m_expirationDays;
}
}
internal bool PermanentData {
set{
m_permanentData = value;
}
get{
return m_permanentData;
}
}
#endif
public IsolatedStorageContainment UsageAllowed {
set{
m_allowed = value;
}
get{
return m_allowed;
}
}
//------------------------------------------------------
//
// CODEACCESSPERMISSION IMPLEMENTATION
//
//------------------------------------------------------
public bool IsUnrestricted()
{
return m_allowed == IsolatedStorageContainment.UnrestrictedIsolatedStorage;
}
//-----------------------------------------------------
//
// INTERNAL METHODS
//
//------------------------------------------------------
internal static long min(long x,long y) {return x>y?y:x;}
internal static long max(long x,long y) {return x0)
{
esd.AddAttribute(_strUserQuota, (m_userQuota).ToString(CultureInfo.InvariantCulture)) ;
}
if (m_machineQuota>0)
{
esd.AddAttribute(_strMachineQuota, (m_machineQuota).ToString(CultureInfo.InvariantCulture)) ;
}
if (m_expirationDays>0)
{
esd.AddAttribute( _strExpiry, (m_expirationDays).ToString(CultureInfo.InvariantCulture)) ;
}
if (m_permanentData)
{
esd.AddAttribute(_strPermDat, (m_permanentData).ToString()) ;
}
}
else
{
esd.AddAttribute( "Unrestricted", "true" );
}
return esd;
}
public override void FromXml(SecurityElement esd)
{
CodeAccessPermission.ValidateElement( esd, this );
m_allowed = IsolatedStorageContainment.None; // default if no match
if (XMLUtil.IsUnrestricted(esd))
{
m_allowed = IsolatedStorageContainment.UnrestrictedIsolatedStorage;
}
else
{
String allowed = esd.Attribute( "Allowed" );
if (allowed != null)
m_allowed = (IsolatedStorageContainment)Enum.Parse( typeof( IsolatedStorageContainment ), allowed );
}
if (m_allowed == IsolatedStorageContainment.UnrestrictedIsolatedStorage)
{
m_userQuota = Int64.MaxValue;
m_machineQuota = Int64.MaxValue;
m_expirationDays = Int64.MaxValue ;
m_permanentData = true;
}
else
{
String param;
param = esd.Attribute (_strUserQuota) ;
m_userQuota = param != null ? Int64.Parse(param, CultureInfo.InvariantCulture) : 0 ;
param = esd.Attribute (_strMachineQuota) ;
m_machineQuota = param != null ? Int64.Parse(param, CultureInfo.InvariantCulture) : 0 ;
param = esd.Attribute (_strExpiry) ;
m_expirationDays = param != null ? Int64.Parse(param, CultureInfo.InvariantCulture) : 0 ;
param = esd.Attribute (_strPermDat) ;
m_permanentData = param != null ? (Boolean.Parse(param)) : false ;
}
}
#endif // FEATURE_CAS_POLICY
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IInstanceContextProvider.cs
- BaseWebProxyFinder.cs
- XmlSchemaFacet.cs
- RotateTransform.cs
- Trace.cs
- FilteredXmlReader.cs
- TextMarkerSource.cs
- RMEnrollmentPage3.cs
- SchemaManager.cs
- BitmapFrameDecode.cs
- ConnectionManagementSection.cs
- arc.cs
- DropShadowEffect.cs
- ProxyHwnd.cs
- ItemCollection.cs
- MenuItemStyle.cs
- DataBoundLiteralControl.cs
- WindowsTitleBar.cs
- EventDescriptor.cs
- UIElement3D.cs
- EntityException.cs
- Options.cs
- ListManagerBindingsCollection.cs
- HtmlElementCollection.cs
- TextParaLineResult.cs
- ParallelForEach.cs
- XpsDocumentEvent.cs
- TdsParserStaticMethods.cs
- ValueTable.cs
- ProfileProvider.cs
- GridViewCellAutomationPeer.cs
- RoleService.cs
- SafeUserTokenHandle.cs
- Group.cs
- XMLUtil.cs
- _KerberosClient.cs
- Buffer.cs
- ByteStorage.cs
- JournalEntry.cs
- Listen.cs
- InvalidateEvent.cs
- AddInContractAttribute.cs
- Task.cs
- RecordConverter.cs
- DataSourceControlBuilder.cs
- ModelItemCollectionImpl.cs
- ScheduleChanges.cs
- StackOverflowException.cs
- PerformanceCounter.cs
- XmlProcessingInstruction.cs
- Point.cs
- FileLevelControlBuilderAttribute.cs
- NavigationPropertyEmitter.cs
- AggregateException.cs
- SafeWaitHandle.cs
- GZipStream.cs
- Adorner.cs
- XmlText.cs
- SoapReflector.cs
- Lasso.cs
- ProcessThreadCollection.cs
- SimpleRecyclingCache.cs
- ModuleElement.cs
- ToolStripSplitButton.cs
- DefaultDialogButtons.cs
- CodeFieldReferenceExpression.cs
- NativeMethods.cs
- XamlReaderHelper.cs
- RuleCache.cs
- XPathDocument.cs
- AttributeXamlType.cs
- FixedNode.cs
- DataTableMapping.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- ThreadAbortException.cs
- TTSVoice.cs
- ValidationSummary.cs
- TextElementCollection.cs
- ViewGenResults.cs
- CompilerCollection.cs
- XmlComment.cs
- MatrixUtil.cs
- TextLineResult.cs
- MobileContainerDesigner.cs
- WebDisplayNameAttribute.cs
- VBIdentifierTrimConverter.cs
- X509ThumbprintKeyIdentifierClause.cs
- OuterProxyWrapper.cs
- StretchValidation.cs
- FileDetails.cs
- XPathNodeHelper.cs
- EntityDataSourceUtil.cs
- RawStylusInputCustomData.cs
- TransformerInfo.cs
- ContentPlaceHolder.cs
- NavigatingCancelEventArgs.cs
- HitTestWithPointDrawingContextWalker.cs
- NavigationHelper.cs
- CodeSnippetCompileUnit.cs
- ExpressionReplacer.cs