Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Permissions / FileDialogPermission.cs / 1305376 / 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;
using System.Diagnostics.Contracts;
[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);
}
#if FEATURE_CAS_POLICY
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);
}
#endif // FEATURE_CAS_POLICY
///
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(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(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;
}
}
#if FEATURE_CAS_POLICY
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;
}
#endif // FEATURE_CAS_POLICY
public override IPermission Union(IPermission target) {
if (target == null) {
return this.Copy();
}
else if (!VerifyType(target)) {
throw new ArgumentException(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(Environment.GetResourceString("Arg_EnumIllegalVal", (int)access));
}
Contract.EndContractBlock();
}
}
}
// 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;
using System.Diagnostics.Contracts;
[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);
}
#if FEATURE_CAS_POLICY
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);
}
#endif // FEATURE_CAS_POLICY
///
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(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(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;
}
}
#if FEATURE_CAS_POLICY
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;
}
#endif // FEATURE_CAS_POLICY
public override IPermission Union(IPermission target) {
if (target == null) {
return this.Copy();
}
else if (!VerifyType(target)) {
throw new ArgumentException(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(Environment.GetResourceString("Arg_EnumIllegalVal", (int)access));
}
Contract.EndContractBlock();
}
}
}
// 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
- DataGridViewCellStyleBuilderDialog.cs
- GridViewCancelEditEventArgs.cs
- EntityTypeEmitter.cs
- XmlChildEnumerator.cs
- CurrentChangingEventArgs.cs
- WebPartCloseVerb.cs
- XmlNamespaceDeclarationsAttribute.cs
- ImageCodecInfo.cs
- LineServicesRun.cs
- ContractMapping.cs
- DataGrid.cs
- SerialReceived.cs
- RemoteArgument.cs
- SqlReferenceCollection.cs
- RtfFormatStack.cs
- ElementHostPropertyMap.cs
- RelationshipEnd.cs
- OdbcParameterCollection.cs
- RequestContext.cs
- FontWeight.cs
- RoutedCommand.cs
- PeerNearMe.cs
- CrossSiteScriptingValidation.cs
- EnumMemberAttribute.cs
- Registration.cs
- WebPageTraceListener.cs
- ExpressionLink.cs
- EdmProperty.cs
- InternalsVisibleToAttribute.cs
- ExceptionUtil.cs
- ExpressionLexer.cs
- SessionKeyExpiredException.cs
- FloaterBaseParaClient.cs
- BlurEffect.cs
- UseLicense.cs
- SplineQuaternionKeyFrame.cs
- localization.cs
- StrokeNodeData.cs
- WebPartChrome.cs
- UserNameServiceElement.cs
- FontCacheUtil.cs
- Tile.cs
- AutoSizeComboBox.cs
- NullableIntSumAggregationOperator.cs
- HttpFileCollection.cs
- SpellerError.cs
- Guid.cs
- ValidateNames.cs
- XmlSchemaSimpleContentRestriction.cs
- TypeGeneratedEventArgs.cs
- RuntimeHandles.cs
- FontNamesConverter.cs
- ClientData.cs
- EnumBuilder.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- AnimationTimeline.cs
- RelationshipEndMember.cs
- Converter.cs
- SqlSelectStatement.cs
- PrincipalPermissionMode.cs
- TextRangeProviderWrapper.cs
- XmlSchemaIdentityConstraint.cs
- ThicknessAnimationUsingKeyFrames.cs
- MenuCommand.cs
- TrackBarRenderer.cs
- XsdDuration.cs
- ComplexTypeEmitter.cs
- ClientSession.cs
- PrintPreviewDialog.cs
- PolicyException.cs
- EdmError.cs
- BinaryCommonClasses.cs
- Pipe.cs
- WinFormsUtils.cs
- SecurityTokenSerializer.cs
- ConfigXmlSignificantWhitespace.cs
- UnionExpr.cs
- FamilyMap.cs
- TextTreeObjectNode.cs
- ProxyWebPartConnectionCollection.cs
- DateTimeParse.cs
- DependencyObjectType.cs
- TextEditorTyping.cs
- OdbcStatementHandle.cs
- InputChannelAcceptor.cs
- DES.cs
- ScriptComponentDescriptor.cs
- GridSplitterAutomationPeer.cs
- SkinIDTypeConverter.cs
- ResetableIterator.cs
- BevelBitmapEffect.cs
- ValidationErrorCollection.cs
- AbandonedMutexException.cs
- Splitter.cs
- TemplateKey.cs
- ParenExpr.cs
- IPAddress.cs
- OleDbTransaction.cs
- ConfigurationSchemaErrors.cs
- SafeCryptoKeyHandle.cs