Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Security / Permissions / FileDialogPermission.cs / 1 / FileDialogPermission.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // FileDialogPermission.cs // namespace System.Security.Permissions { using System; using System.Text; using System.Security; using System.Security.Util; using System.IO; using System.Runtime.Serialization; using System.Reflection; using System.Collections; using System.Globalization; [Serializable, Flags] [System.Runtime.InteropServices.ComVisible(true)] public enum FileDialogPermissionAccess { None = 0x00, Open = 0x01, Save = 0x02, OpenSave = Open | Save } [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class FileDialogPermission : CodeAccessPermission, IUnrestrictedPermission, IBuiltInPermission { FileDialogPermissionAccess access; public FileDialogPermission(PermissionState state) { if (state == PermissionState.Unrestricted) { SetUnrestricted(true); } else if (state == PermissionState.None) { SetUnrestricted(false); Reset(); } else { throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPermissionState")); } } public FileDialogPermission(FileDialogPermissionAccess access) { VerifyAccess(access); this.access = access; } public FileDialogPermissionAccess Access { get { return access; } set { VerifyAccess(value); access = value; } } public override IPermission Copy() { return new FileDialogPermission(this.access); } public override void FromXml(SecurityElement esd) { CodeAccessPermission.ValidateElement(esd, this); if (XMLUtil.IsUnrestricted(esd)) { SetUnrestricted(true); return; } access = FileDialogPermissionAccess.None; string accessXml = esd.Attribute("Access"); if (accessXml != null) access = (FileDialogPermissionAccess)Enum.Parse(typeof(FileDialogPermissionAccess), accessXml); } ///int IBuiltInPermission.GetTokenIndex() { return FileDialogPermission.GetTokenIndex(); } internal static int GetTokenIndex() { return BuiltInPermissionIndex.FileDialogPermissionIndex; } 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)); } FileDialogPermission operand = (FileDialogPermission)target; FileDialogPermissionAccess intersectAccess = access & operand.Access; if (intersectAccess == FileDialogPermissionAccess.None) return null; else return new FileDialogPermission(intersectAccess); } public override bool IsSubsetOf(IPermission target) { if (target == null) { // Only safe subset if this is empty return access == FileDialogPermissionAccess.None; } try { FileDialogPermission operand = (FileDialogPermission)target; if (operand.IsUnrestricted()) { return true; } else if (this.IsUnrestricted()) { return false; } else { int open = (int)(access & FileDialogPermissionAccess.Open); int save = (int)(access & FileDialogPermissionAccess.Save); int openTarget = (int)(operand.Access & FileDialogPermissionAccess.Open); int saveTarget = (int)(operand.Access & FileDialogPermissionAccess.Save); return open <= openTarget && save <= saveTarget; } } catch (InvalidCastException) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName)); } } public bool IsUnrestricted() { return access == FileDialogPermissionAccess.OpenSave; } void Reset() { access = FileDialogPermissionAccess.None; } void SetUnrestricted( bool unrestricted ) { if (unrestricted) { access = FileDialogPermissionAccess.OpenSave; } } public override SecurityElement ToXml() { SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.FileDialogPermission" ); if (!IsUnrestricted()) { if (access != FileDialogPermissionAccess.None) { esd.AddAttribute("Access", Enum.GetName(typeof(FileDialogPermissionAccess), access)); } } else { esd.AddAttribute("Unrestricted", "true"); } return esd; } 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)); } FileDialogPermission operand = (FileDialogPermission)target; return new FileDialogPermission(access | operand.Access); } static void VerifyAccess(FileDialogPermissionAccess access) { if ((access & ~FileDialogPermissionAccess.OpenSave) != 0 ) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Arg_EnumIllegalVal"), (int)access)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // FileDialogPermission.cs // namespace System.Security.Permissions { using System; using System.Text; using System.Security; using System.Security.Util; using System.IO; using System.Runtime.Serialization; using System.Reflection; using System.Collections; using System.Globalization; [Serializable, Flags] [System.Runtime.InteropServices.ComVisible(true)] public enum FileDialogPermissionAccess { None = 0x00, Open = 0x01, Save = 0x02, OpenSave = Open | Save } [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class FileDialogPermission : CodeAccessPermission, IUnrestrictedPermission, IBuiltInPermission { FileDialogPermissionAccess access; public FileDialogPermission(PermissionState state) { if (state == PermissionState.Unrestricted) { SetUnrestricted(true); } else if (state == PermissionState.None) { SetUnrestricted(false); Reset(); } else { throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPermissionState")); } } public FileDialogPermission(FileDialogPermissionAccess access) { VerifyAccess(access); this.access = access; } public FileDialogPermissionAccess Access { get { return access; } set { VerifyAccess(value); access = value; } } public override IPermission Copy() { return new FileDialogPermission(this.access); } public override void FromXml(SecurityElement esd) { CodeAccessPermission.ValidateElement(esd, this); if (XMLUtil.IsUnrestricted(esd)) { SetUnrestricted(true); return; } access = FileDialogPermissionAccess.None; string accessXml = esd.Attribute("Access"); if (accessXml != null) access = (FileDialogPermissionAccess)Enum.Parse(typeof(FileDialogPermissionAccess), accessXml); } /// int IBuiltInPermission.GetTokenIndex() { return FileDialogPermission.GetTokenIndex(); } internal static int GetTokenIndex() { return BuiltInPermissionIndex.FileDialogPermissionIndex; } 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)); } FileDialogPermission operand = (FileDialogPermission)target; FileDialogPermissionAccess intersectAccess = access & operand.Access; if (intersectAccess == FileDialogPermissionAccess.None) return null; else return new FileDialogPermission(intersectAccess); } public override bool IsSubsetOf(IPermission target) { if (target == null) { // Only safe subset if this is empty return access == FileDialogPermissionAccess.None; } try { FileDialogPermission operand = (FileDialogPermission)target; if (operand.IsUnrestricted()) { return true; } else if (this.IsUnrestricted()) { return false; } else { int open = (int)(access & FileDialogPermissionAccess.Open); int save = (int)(access & FileDialogPermissionAccess.Save); int openTarget = (int)(operand.Access & FileDialogPermissionAccess.Open); int saveTarget = (int)(operand.Access & FileDialogPermissionAccess.Save); return open <= openTarget && save <= saveTarget; } } catch (InvalidCastException) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName)); } } public bool IsUnrestricted() { return access == FileDialogPermissionAccess.OpenSave; } void Reset() { access = FileDialogPermissionAccess.None; } void SetUnrestricted( bool unrestricted ) { if (unrestricted) { access = FileDialogPermissionAccess.OpenSave; } } public override SecurityElement ToXml() { SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.FileDialogPermission" ); if (!IsUnrestricted()) { if (access != FileDialogPermissionAccess.None) { esd.AddAttribute("Access", Enum.GetName(typeof(FileDialogPermissionAccess), access)); } } else { esd.AddAttribute("Unrestricted", "true"); } return esd; } 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)); } FileDialogPermission operand = (FileDialogPermission)target; return new FileDialogPermission(access | operand.Access); } static void VerifyAccess(FileDialogPermissionAccess access) { if ((access & ~FileDialogPermissionAccess.OpenSave) != 0 ) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Arg_EnumIllegalVal"), (int)access)); } } } } // 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
- ExceptionHelpers.cs
- AspCompat.cs
- PersonalizablePropertyEntry.cs
- InArgument.cs
- PerspectiveCamera.cs
- PolyBezierSegmentFigureLogic.cs
- HttpFileCollection.cs
- RealizedColumnsBlock.cs
- CmsInterop.cs
- MobileContainerDesigner.cs
- MimeParameterWriter.cs
- PipeException.cs
- ToolStripGrip.cs
- sqlnorm.cs
- XmlUnspecifiedAttribute.cs
- XhtmlConformanceSection.cs
- BuildProvidersCompiler.cs
- GridViewRowPresenter.cs
- FixedFindEngine.cs
- Array.cs
- XmlSchemaObjectCollection.cs
- ItemChangedEventArgs.cs
- autovalidator.cs
- InfoCardTraceRecord.cs
- SystemNetworkInterface.cs
- Win32Interop.cs
- InvokeGenerator.cs
- SecurityDocument.cs
- EditorZoneBase.cs
- MsmqNonTransactedPoisonHandler.cs
- TraceData.cs
- EventProxy.cs
- SizeChangedInfo.cs
- ElementAction.cs
- MessageDispatch.cs
- MessageDecoder.cs
- SimplePropertyEntry.cs
- precedingsibling.cs
- DataListGeneralPage.cs
- LowerCaseStringConverter.cs
- RenderingEventArgs.cs
- XmlIgnoreAttribute.cs
- ParameterCollection.cs
- SmiRequestExecutor.cs
- ItemTypeToolStripMenuItem.cs
- DynamicValidator.cs
- DataRowComparer.cs
- SqlConnectionPoolProviderInfo.cs
- TemplateEditingFrame.cs
- Int64.cs
- PersonalizableAttribute.cs
- NumericExpr.cs
- MailAddressCollection.cs
- AssertSection.cs
- IDReferencePropertyAttribute.cs
- GuidelineCollection.cs
- TdsParserStaticMethods.cs
- ViewStateModeByIdAttribute.cs
- MetadataProperty.cs
- OrderPreservingPipeliningMergeHelper.cs
- SettingsSection.cs
- SystemNetworkInterface.cs
- ListenerAdaptersInstallComponent.cs
- Popup.cs
- HTTPNotFoundHandler.cs
- AutomationProperty.cs
- HtmlMeta.cs
- DefaultMemberAttribute.cs
- FrameworkElement.cs
- assertwrapper.cs
- TransactionManager.cs
- EmitterCache.cs
- CodeTypeParameterCollection.cs
- RsaSecurityToken.cs
- FontFaceLayoutInfo.cs
- CategoryNameCollection.cs
- util.cs
- OdbcConnectionPoolProviderInfo.cs
- Selection.cs
- TrackingStringDictionary.cs
- SuppressMergeCheckAttribute.cs
- IdentifierCreationService.cs
- SpotLight.cs
- PenContexts.cs
- OperationCanceledException.cs
- KnownTypes.cs
- RecipientInfo.cs
- OLEDB_Util.cs
- HtmlForm.cs
- PriorityBindingExpression.cs
- TransferRequestHandler.cs
- EnvelopedPkcs7.cs
- Logging.cs
- DetailsViewDeletedEventArgs.cs
- ProfileGroupSettingsCollection.cs
- FileAuthorizationModule.cs
- SystemIcons.cs
- RequestCacheManager.cs
- ScopeElement.cs
- AuthenticationManager.cs