Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SelectorAutomationPeer.cs
- ExpressionBinding.cs
- Attributes.cs
- AutomationPatternInfo.cs
- MouseCaptureWithinProperty.cs
- LoginNameDesigner.cs
- EncodingInfo.cs
- ScriptingWebServicesSectionGroup.cs
- XmlMtomReader.cs
- IncrementalHitTester.cs
- SoapAttributes.cs
- SHA384.cs
- DocumentsTrace.cs
- Sequence.cs
- Int64Animation.cs
- WSFederationHttpSecurityElement.cs
- SqlProcedureAttribute.cs
- ThemeDirectoryCompiler.cs
- DbDataSourceEnumerator.cs
- ServiceOperationUIEditor.cs
- DateTimeOffsetStorage.cs
- CapabilitiesSection.cs
- Graph.cs
- XmlNamedNodeMap.cs
- EllipseGeometry.cs
- SignedPkcs7.cs
- WorkflowControlClient.cs
- PrtCap_Base.cs
- DataGridViewIntLinkedList.cs
- SpecularMaterial.cs
- ModuleBuilder.cs
- OleDbErrorCollection.cs
- WindowsEditBox.cs
- ListParagraph.cs
- DataGridViewCellMouseEventArgs.cs
- EventPropertyMap.cs
- SocketElement.cs
- TriggerAction.cs
- XsdDateTime.cs
- ComponentSerializationService.cs
- ClassDataContract.cs
- ToolStripDropDownItem.cs
- FixedLineResult.cs
- XPathNodePointer.cs
- ContentHostHelper.cs
- StylusPointCollection.cs
- PageCache.cs
- Delegate.cs
- __TransparentProxy.cs
- OracleConnection.cs
- DesignerActionGlyph.cs
- RankException.cs
- OperationGenerator.cs
- safemediahandle.cs
- Content.cs
- CombinedGeometry.cs
- WindowsRebar.cs
- LabelDesigner.cs
- ContextMenuStrip.cs
- ComponentManagerBroker.cs
- ContractType.cs
- DbMetaDataFactory.cs
- FlowLayoutPanelDesigner.cs
- Assert.cs
- HyperLinkColumn.cs
- HTMLTagNameToTypeMapper.cs
- LogWriteRestartAreaAsyncResult.cs
- DataGridToolTip.cs
- figurelengthconverter.cs
- ObjectComplexPropertyMapping.cs
- ImageIndexConverter.cs
- DoWhileDesigner.xaml.cs
- TextBoxRenderer.cs
- TranslateTransform.cs
- WeakReferenceKey.cs
- VisualProxy.cs
- SectionXmlInfo.cs
- Latin1Encoding.cs
- EncryptedPackageFilter.cs
- CancelAsyncOperationRequest.cs
- RightsManagementEncryptedStream.cs
- ProxyWebPart.cs
- DataServices.cs
- TableDetailsRow.cs
- VirtualPath.cs
- XPathNode.cs
- CancellationTokenRegistration.cs
- DnsPermission.cs
- XmlCompatibilityReader.cs
- ReflectionHelper.cs
- IdentityReference.cs
- AuthorizationContext.cs
- NameValuePair.cs
- PageCatalogPart.cs
- DoubleUtil.cs
- Int32Storage.cs
- BinaryConverter.cs
- ToolBar.cs
- CachedPathData.cs
- VisualTreeFlattener.cs