Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / NamedPermissionSet.cs / 1 / NamedPermissionSet.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // NamedPermissionSet.cs // // Extends PermissionSet to allow an associated name and description // namespace System.Security { using System; using System.Security.Util; using PermissionState = System.Security.Permissions.PermissionState; using System.Runtime.Serialization; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class NamedPermissionSet : PermissionSet { // The name of this PermissionSet private String m_name; // The description of this PermissionSet private String m_description; [OptionalField(VersionAdded = 2)] internal String m_descrResource; internal NamedPermissionSet() : base() { } public NamedPermissionSet( String name ) : base() { CheckName( name ); m_name = name; } public NamedPermissionSet( String name, PermissionState state) : base( state ) { CheckName( name ); m_name = name; } public NamedPermissionSet( String name, PermissionSet permSet ) : base( permSet ) { CheckName( name ); m_name = name; } public NamedPermissionSet( NamedPermissionSet permSet ) : base( permSet ) { m_name = permSet.m_name; m_description = permSet.Description; } public String Name { get { return m_name; } set { CheckName( value ); m_name = value; } } private static void CheckName( String name ) { if (name == null || name.Equals( "" )) throw new ArgumentException( Environment.GetResourceString( "Argument_NPMSInvalidName" )); } public String Description { get { if(m_descrResource != null) { m_description = Environment.GetResourceString(m_descrResource); m_descrResource = null; } return m_description; } set { m_description = value; m_descrResource = null; } } public override PermissionSet Copy() { return new NamedPermissionSet( this ); } public NamedPermissionSet Copy( String name ) { NamedPermissionSet set = new NamedPermissionSet( this ); set.Name = name; return set; } public override SecurityElement ToXml() { SecurityElement elem = base.ToXml("System.Security.NamedPermissionSet"); // If you hit this assert then most likely you are trying to change the name of this class. // This is ok as long as you change the hard coded string above and change the assert below. BCLDebug.Assert( this.GetType().FullName.Equals( "System.Security.NamedPermissionSet" ), "Class name changed!" ); if (m_name != null && !m_name.Equals( "" )) { elem.AddAttribute( "Name", SecurityElement.Escape( m_name ) ); } if (Description != null && !Description.Equals( "" )) { elem.AddAttribute( "Description", SecurityElement.Escape( Description ) ); } return elem; } public override void FromXml( SecurityElement et ) { FromXml( et, false, false ); } internal override void FromXml( SecurityElement et, bool allowInternalOnly, bool ignoreTypeLoadFailures ) { if (et == null) throw new ArgumentNullException( "et" ); String elem; elem = et.Attribute( "Name" ); m_name = elem == null ? null : elem; elem = et.Attribute( "Description" ); m_description = (elem == null ? "" : elem); m_descrResource = null; base.FromXml( et, allowInternalOnly, ignoreTypeLoadFailures ); } internal void FromXmlNameOnly( SecurityElement et ) { // This function gets only the name for the permission set, ignoring all other info. String elem; elem = et.Attribute( "Name" ); m_name = (elem == null ? null : elem); } // NamedPermissionSet Equals should have the exact semantic as PermissionSet. // We explicitly override them here to make sure that no one accidently // changes this. [System.Runtime.InteropServices.ComVisible(false)] public override bool Equals( Object obj ) { return base.Equals( obj ); } [System.Runtime.InteropServices.ComVisible(false)] public override int GetHashCode() { return base.GetHashCode(); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeSecurityHandles.cs
- AnonymousIdentificationModule.cs
- HttpContext.cs
- FrugalMap.cs
- Environment.cs
- RelationshipWrapper.cs
- PeerCollaborationPermission.cs
- MdiWindowListStrip.cs
- DesignerActionList.cs
- DriveInfo.cs
- ToolboxComponentsCreatedEventArgs.cs
- RuntimeIdentifierPropertyAttribute.cs
- DataGridRowEventArgs.cs
- SchemaNames.cs
- SaveFileDialog.cs
- VectorAnimation.cs
- BitVector32.cs
- CollectionBuilder.cs
- ThemeDirectoryCompiler.cs
- SelectionChangedEventArgs.cs
- NullableLongSumAggregationOperator.cs
- StringResourceManager.cs
- CurrencyWrapper.cs
- DropDownList.cs
- XmlTextAttribute.cs
- CompoundFileStorageReference.cs
- SuppressMessageAttribute.cs
- HwndStylusInputProvider.cs
- SchemaCollectionPreprocessor.cs
- MissingSatelliteAssemblyException.cs
- Int16Converter.cs
- ISO2022Encoding.cs
- Enum.cs
- BrowserCapabilitiesFactory.cs
- PrincipalPermission.cs
- ProcessStartInfo.cs
- PageThemeParser.cs
- ClientSideProviderDescription.cs
- HitTestWithGeometryDrawingContextWalker.cs
- LayoutTableCell.cs
- ServicePointManagerElement.cs
- UdpMessageProperty.cs
- VectorCollectionConverter.cs
- FileDialogPermission.cs
- SecurityPermission.cs
- CodePropertyReferenceExpression.cs
- NoPersistScope.cs
- Msec.cs
- SecurityException.cs
- TextEditorSelection.cs
- TextBoxAutoCompleteSourceConverter.cs
- CompilationPass2TaskInternal.cs
- Deflater.cs
- DashStyle.cs
- NavigationFailedEventArgs.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- UserThread.cs
- DetailsViewPagerRow.cs
- RuleSettings.cs
- _OverlappedAsyncResult.cs
- InkCanvasInnerCanvas.cs
- LinearGradientBrush.cs
- PersonalizableAttribute.cs
- DllNotFoundException.cs
- COAUTHINFO.cs
- TraceContext.cs
- StylusPointPropertyUnit.cs
- TemplateBuilder.cs
- SystemMulticastIPAddressInformation.cs
- SessionStateContainer.cs
- Misc.cs
- DoubleStorage.cs
- CompiledQuery.cs
- PassportAuthenticationModule.cs
- CombinedHttpChannel.cs
- FreeFormDragDropManager.cs
- StorageScalarPropertyMapping.cs
- Menu.cs
- XmlCountingReader.cs
- TextBoxLine.cs
- RichTextBoxConstants.cs
- ListView.cs
- ElementMarkupObject.cs
- GZipUtils.cs
- Size3D.cs
- QilFunction.cs
- Script.cs
- APCustomTypeDescriptor.cs
- XComponentModel.cs
- AuthenticationSection.cs
- XpsFixedDocumentReaderWriter.cs
- PersonalizationState.cs
- VBCodeProvider.cs
- SqlParameterCollection.cs
- LongAverageAggregationOperator.cs
- VerificationException.cs
- DaylightTime.cs
- DataGridState.cs
- sqlnorm.cs
- AppSettingsExpressionBuilder.cs