Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / Security / RightsManagement / Grant.cs / 1 / Grant.cs
//------------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: This class represents a (ContentUser , ContentRight) pair.
//
// History:
// 06/01/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;
namespace System.Security.RightsManagement
{
///
/// ContentGrant class represent a (ContentUser , ContentRight) pair this is
/// a basic building block for structures that need to express information about rights granted to a document.
///
///
/// Critical: This class expose access to methods that eventually do one or more of the 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 attribute 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 unmanaged 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 ContentGrant
{
///
/// Constructor for the read only ContentGrant class. It takes values for user and right as parameters.
///
public ContentGrant(ContentUser user, ContentRight right)
: this(user, right, DateTime.MinValue, DateTime.MaxValue)
{
}
///
/// Constructor for the read only ContentGrant class. It takes values for
/// user, right, validFrom, and validUntil as parameters.
///
public ContentGrant(ContentUser user, ContentRight right, DateTime validFrom, DateTime validUntil)
{
SecurityHelper.DemandRightsManagementPermission();
// Add validation here
if (user == null)
{
throw new ArgumentNullException("user");
}
if ((right != ContentRight.View) &&
(right != ContentRight.Edit) &&
(right != ContentRight.Print) &&
(right != ContentRight.Extract) &&
(right != ContentRight.ObjectModel) &&
(right != ContentRight.Owner) &&
(right != ContentRight.ViewRightsData) &&
(right != ContentRight.Forward) &&
(right != ContentRight.Reply) &&
(right != ContentRight.ReplyAll) &&
(right != ContentRight.Sign) &&
(right != ContentRight.DocumentEdit) &&
(right != ContentRight.Export))
{
throw new ArgumentOutOfRangeException("right");
}
if (validFrom > validUntil)
{
throw new ArgumentOutOfRangeException("validFrom");
}
_user = user;
_right = right;
_validFrom = validFrom;
_validUntil = validUntil;
}
///
/// Read only User propery.
///
public ContentUser User
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _user;
}
}
///
/// Read only Right propery.
///
public ContentRight Right
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _right;
}
}
///
/// The starting validity time, in UTC time, for the grant.
///
public DateTime ValidFrom
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _validFrom;
}
}
///
/// The ending validity time, in UTC time, for the grant.
///
public DateTime ValidUntil
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _validUntil;
}
}
private ContentUser _user;
private ContentRight _right;
private DateTime _validFrom;
private DateTime _validUntil;
}
}
// 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 a (ContentUser , ContentRight) pair.
//
// History:
// 06/01/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;
namespace System.Security.RightsManagement
{
///
/// ContentGrant class represent a (ContentUser , ContentRight) pair this is
/// a basic building block for structures that need to express information about rights granted to a document.
///
///
/// Critical: This class expose access to methods that eventually do one or more of the 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 attribute 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 unmanaged 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 ContentGrant
{
///
/// Constructor for the read only ContentGrant class. It takes values for user and right as parameters.
///
public ContentGrant(ContentUser user, ContentRight right)
: this(user, right, DateTime.MinValue, DateTime.MaxValue)
{
}
///
/// Constructor for the read only ContentGrant class. It takes values for
/// user, right, validFrom, and validUntil as parameters.
///
public ContentGrant(ContentUser user, ContentRight right, DateTime validFrom, DateTime validUntil)
{
SecurityHelper.DemandRightsManagementPermission();
// Add validation here
if (user == null)
{
throw new ArgumentNullException("user");
}
if ((right != ContentRight.View) &&
(right != ContentRight.Edit) &&
(right != ContentRight.Print) &&
(right != ContentRight.Extract) &&
(right != ContentRight.ObjectModel) &&
(right != ContentRight.Owner) &&
(right != ContentRight.ViewRightsData) &&
(right != ContentRight.Forward) &&
(right != ContentRight.Reply) &&
(right != ContentRight.ReplyAll) &&
(right != ContentRight.Sign) &&
(right != ContentRight.DocumentEdit) &&
(right != ContentRight.Export))
{
throw new ArgumentOutOfRangeException("right");
}
if (validFrom > validUntil)
{
throw new ArgumentOutOfRangeException("validFrom");
}
_user = user;
_right = right;
_validFrom = validFrom;
_validUntil = validUntil;
}
///
/// Read only User propery.
///
public ContentUser User
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _user;
}
}
///
/// Read only Right propery.
///
public ContentRight Right
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _right;
}
}
///
/// The starting validity time, in UTC time, for the grant.
///
public DateTime ValidFrom
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _validFrom;
}
}
///
/// The ending validity time, in UTC time, for the grant.
///
public DateTime ValidUntil
{
get
{
SecurityHelper.DemandRightsManagementPermission();
return _validUntil;
}
}
private ContentUser _user;
private ContentRight _right;
private DateTime _validFrom;
private DateTime _validUntil;
}
}
// 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
- TextEndOfSegment.cs
- Mutex.cs
- TypeNameConverter.cs
- PointUtil.cs
- WorkflowApplication.cs
- ExpressionBuilder.cs
- FragmentQuery.cs
- DataBoundLiteralControl.cs
- ResourcesChangeInfo.cs
- ProcessThreadCollection.cs
- DiagnosticsConfigurationHandler.cs
- GacUtil.cs
- Bitmap.cs
- GetTokenRequest.cs
- Connector.cs
- HtmlTitle.cs
- XmlCDATASection.cs
- ProtocolViolationException.cs
- HwndHostAutomationPeer.cs
- PeerApplicationLaunchInfo.cs
- UniformGrid.cs
- WrapPanel.cs
- RadioButton.cs
- wmiprovider.cs
- PathStreamGeometryContext.cs
- OleDbError.cs
- ScriptingProfileServiceSection.cs
- WebServiceData.cs
- StructuredProperty.cs
- VisualBrush.cs
- RotateTransform.cs
- EncoderNLS.cs
- WebConvert.cs
- GroupItem.cs
- XmlSchemaSubstitutionGroup.cs
- CorrelationTokenInvalidatedHandler.cs
- FileSystemInfo.cs
- Parsers.cs
- Span.cs
- FusionWrap.cs
- FacetValueContainer.cs
- SchemaNamespaceManager.cs
- CatalogPart.cs
- Vector3DValueSerializer.cs
- XmlNodeWriter.cs
- ContextDataSource.cs
- MessageQuerySet.cs
- BaseDataListComponentEditor.cs
- WebPartVerb.cs
- HttpHandlerActionCollection.cs
- ResolveNameEventArgs.cs
- HttpModulesSection.cs
- WebPartTransformer.cs
- LayoutTableCell.cs
- WindowsTooltip.cs
- Currency.cs
- ReadWriteObjectLock.cs
- unitconverter.cs
- OperationDescriptionCollection.cs
- CodeDomConfigurationHandler.cs
- InheritedPropertyChangedEventArgs.cs
- StandardOleMarshalObject.cs
- TableParaClient.cs
- DrawingBrush.cs
- SHA512.cs
- ErrorHandlingReceiver.cs
- StubHelpers.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ClientSponsor.cs
- StrokeCollectionDefaultValueFactory.cs
- CorrelationTokenTypeConvertor.cs
- PageParser.cs
- PropertyValueChangedEvent.cs
- MailAddressCollection.cs
- _ChunkParse.cs
- TaskCanceledException.cs
- StrongNamePublicKeyBlob.cs
- RightNameExpirationInfoPair.cs
- XmlReflectionImporter.cs
- FeatureManager.cs
- TemplateControl.cs
- ResourceExpressionBuilder.cs
- DataPagerFieldCollection.cs
- SafeNativeMethods.cs
- WeakHashtable.cs
- UnlockInstanceCommand.cs
- TypeLoadException.cs
- DialogResultConverter.cs
- SqlCacheDependencyDatabaseCollection.cs
- DelegateHelpers.Generated.cs
- PointAnimationUsingPath.cs
- EntityDataSourceQueryBuilder.cs
- ObjectDataSourceStatusEventArgs.cs
- AssemblyName.cs
- EventSetter.cs
- SystemDropShadowChrome.cs
- ManagementDateTime.cs
- StyleSheetRefUrlEditor.cs
- GeneralTransform3DGroup.cs
- WebScriptEndpointElement.cs