Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Security / RightsManagement / LocalizedNameDescriptionPair.cs / 1305600 / LocalizedNameDescriptionPair.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: This class represents an immutable pair of Strings (Name, Description) // That are generally used to represent name and description of an unsigned publish license // (a.k.a. template). Unsigned Publish License has property called LocalizedNameDescriptionDictionary // which holds a map of a local Id to a Name Description pair, in order to support scenarios of // building locale specific template browsing applications. // // History: // 11/14/2005: IgorBel : Initial Implementation // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Windows; using MS.Internal.Security.RightsManagement; using SecurityHelper=MS.Internal.WindowsBase.SecurityHelper; // Allow use of presharp warning numbers [6506] and [6518] unknown to the compiler #pragma warning disable 1634, 1691 namespace System.Security.RightsManagement { ////// LocalizedNameDescriptionPair class represent an immutable (Name, Description) pair of strings. This is /// a basic building block for structures that need to express locale specific information about /// Unsigned Publish Licenses. /// ////// Critical: This class exposes access to methods that eventually do one or more of the following /// 1. call into unmanaged code /// 2. affects state/data that will eventually cross over unmanaged code boundary /// 3. Return some RM related information which is considered private /// /// TreatAsSafe: This attrbiute automatically applied to all public entry points. All the public entry points have /// Demands for RightsManagementPermission at entry to counter the possible attacks that do /// not lead to the unamanged code directly(which is protected by another Demand there) but rather leave /// some status/data behind which eventually might cross the unamanaged boundary. /// [SecurityCritical(SecurityCriticalScope.Everything)] public class LocalizedNameDescriptionPair { ////// Constructor for the read only LocalizedNameDescriptionPair class. It takes values for Name and Description as parameters. /// public LocalizedNameDescriptionPair(string name, string description) { SecurityHelper.DemandRightsManagementPermission(); if (name == null) { throw new ArgumentNullException("name"); } if (description == null) { throw new ArgumentNullException("description"); } _name = name; _description = description; } ////// Read only Name property. /// public string Name { get { SecurityHelper.DemandRightsManagementPermission(); return _name; } } ////// Read only Description property. /// public string Description { get { SecurityHelper.DemandRightsManagementPermission(); return _description; } } ////// Test for equality. /// public override bool Equals(object obj) { SecurityHelper.DemandRightsManagementPermission(); if ((obj == null) || (obj.GetType() != GetType())) { return false; } LocalizedNameDescriptionPair localizedNameDescr = obj as LocalizedNameDescriptionPair; //PRESHARP:Parameter to this public method must be validated: A null-dereference can occur here. //This is a false positive as the checks above can gurantee no null dereference will occur #pragma warning disable 6506 return (String.CompareOrdinal(localizedNameDescr.Name, Name) == 0) && (String.CompareOrdinal(localizedNameDescr.Description, Description) == 0); #pragma warning restore 6506 } ////// Compute hash code. /// public override int GetHashCode() { SecurityHelper.DemandRightsManagementPermission(); return Name.GetHashCode() ^ Description.GetHashCode(); } private string _name; private string _description; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: This class represents an immutable pair of Strings (Name, Description) // That are generally used to represent name and description of an unsigned publish license // (a.k.a. template). Unsigned Publish License has property called LocalizedNameDescriptionDictionary // which holds a map of a local Id to a Name Description pair, in order to support scenarios of // building locale specific template browsing applications. // // History: // 11/14/2005: IgorBel : Initial Implementation // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Windows; using MS.Internal.Security.RightsManagement; using SecurityHelper=MS.Internal.WindowsBase.SecurityHelper; // Allow use of presharp warning numbers [6506] and [6518] unknown to the compiler #pragma warning disable 1634, 1691 namespace System.Security.RightsManagement { ////// LocalizedNameDescriptionPair class represent an immutable (Name, Description) pair of strings. This is /// a basic building block for structures that need to express locale specific information about /// Unsigned Publish Licenses. /// ////// Critical: This class exposes access to methods that eventually do one or more of the following /// 1. call into unmanaged code /// 2. affects state/data that will eventually cross over unmanaged code boundary /// 3. Return some RM related information which is considered private /// /// TreatAsSafe: This attrbiute automatically applied to all public entry points. All the public entry points have /// Demands for RightsManagementPermission at entry to counter the possible attacks that do /// not lead to the unamanged code directly(which is protected by another Demand there) but rather leave /// some status/data behind which eventually might cross the unamanaged boundary. /// [SecurityCritical(SecurityCriticalScope.Everything)] public class LocalizedNameDescriptionPair { ////// Constructor for the read only LocalizedNameDescriptionPair class. It takes values for Name and Description as parameters. /// public LocalizedNameDescriptionPair(string name, string description) { SecurityHelper.DemandRightsManagementPermission(); if (name == null) { throw new ArgumentNullException("name"); } if (description == null) { throw new ArgumentNullException("description"); } _name = name; _description = description; } ////// Read only Name property. /// public string Name { get { SecurityHelper.DemandRightsManagementPermission(); return _name; } } ////// Read only Description property. /// public string Description { get { SecurityHelper.DemandRightsManagementPermission(); return _description; } } ////// Test for equality. /// public override bool Equals(object obj) { SecurityHelper.DemandRightsManagementPermission(); if ((obj == null) || (obj.GetType() != GetType())) { return false; } LocalizedNameDescriptionPair localizedNameDescr = obj as LocalizedNameDescriptionPair; //PRESHARP:Parameter to this public method must be validated: A null-dereference can occur here. //This is a false positive as the checks above can gurantee no null dereference will occur #pragma warning disable 6506 return (String.CompareOrdinal(localizedNameDescr.Name, Name) == 0) && (String.CompareOrdinal(localizedNameDescr.Description, Description) == 0); #pragma warning restore 6506 } ////// Compute hash code. /// public override int GetHashCode() { SecurityHelper.DemandRightsManagementPermission(); return Name.GetHashCode() ^ Description.GetHashCode(); } private string _name; private string _description; } } // 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
- QilNode.cs
- Byte.cs
- DynamicDataResources.Designer.cs
- ServiceRoute.cs
- COAUTHINFO.cs
- JapaneseCalendar.cs
- MimePart.cs
- NetworkCredential.cs
- Matrix.cs
- OracleException.cs
- ObjectListGeneralPage.cs
- CharUnicodeInfo.cs
- ZipIOCentralDirectoryBlock.cs
- ResourceAttributes.cs
- RegexTree.cs
- FileInfo.cs
- EventDescriptor.cs
- ToolboxItemCollection.cs
- BufferedStream2.cs
- WindowsStatusBar.cs
- MailWriter.cs
- WebPartAddingEventArgs.cs
- ToolboxItem.cs
- BinaryUtilClasses.cs
- InvariantComparer.cs
- base64Transforms.cs
- COM2Enum.cs
- DriveInfo.cs
- ComboBoxRenderer.cs
- ListViewHitTestInfo.cs
- PrintController.cs
- Native.cs
- HttpCachePolicyWrapper.cs
- KeyPressEvent.cs
- KeyValuePairs.cs
- ListView.cs
- Thread.cs
- ContentPlaceHolder.cs
- Package.cs
- MultipartIdentifier.cs
- KeyFrames.cs
- WsatExtendedInformation.cs
- GridViewRow.cs
- _WebProxyDataBuilder.cs
- BindingNavigator.cs
- SafeEventLogReadHandle.cs
- XmlArrayItemAttributes.cs
- SqlConnectionPoolGroupProviderInfo.cs
- DataProviderNameConverter.cs
- IntranetCredentialPolicy.cs
- _ConnectOverlappedAsyncResult.cs
- RadioButtonStandardAdapter.cs
- ReferenceList.cs
- ConfigurationElement.cs
- AsymmetricKeyExchangeDeformatter.cs
- WebPartEditorOkVerb.cs
- SqlCacheDependencySection.cs
- SafeWaitHandle.cs
- ObjectDisposedException.cs
- BooleanKeyFrameCollection.cs
- ModelService.cs
- SiteMapNodeItem.cs
- SqlProvider.cs
- EmptyStringExpandableObjectConverter.cs
- SqlReorderer.cs
- BamlLocalizableResourceKey.cs
- AnnotationResourceChangedEventArgs.cs
- ListCollectionView.cs
- SignatureHelper.cs
- ControlBuilderAttribute.cs
- CreateUserWizardStep.cs
- GradientSpreadMethodValidation.cs
- TypeElementCollection.cs
- Form.cs
- CngKey.cs
- ObjectIDGenerator.cs
- MenuCommandsChangedEventArgs.cs
- DesignOnlyAttribute.cs
- _ListenerRequestStream.cs
- TargetControlTypeAttribute.cs
- Link.cs
- FunctionParameter.cs
- SerTrace.cs
- SettingsSection.cs
- UntrustedRecipientException.cs
- XmlDataLoader.cs
- RoutedCommand.cs
- ToolStripButton.cs
- Visitors.cs
- DataGridViewUtilities.cs
- PointF.cs
- SmtpDigestAuthenticationModule.cs
- PKCS1MaskGenerationMethod.cs
- PostBackOptions.cs
- GridViewColumn.cs
- ForeignConstraint.cs
- HtmlContainerControl.cs
- WebServiceHostFactory.cs
- FunctionNode.cs
- NetCodeGroup.cs