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
- EdmPropertyAttribute.cs
- SqlDataSourceConfigureSortForm.cs
- CellPartitioner.cs
- CodeEntryPointMethod.cs
- DataContractSerializer.cs
- OutputScopeManager.cs
- LocatorBase.cs
- NegotiateStream.cs
- BindingNavigator.cs
- ObjectListDesigner.cs
- TcpHostedTransportConfiguration.cs
- RemotingSurrogateSelector.cs
- MdiWindowListStrip.cs
- IdnMapping.cs
- ExtenderProvidedPropertyAttribute.cs
- EUCJPEncoding.cs
- DateTimeConstantAttribute.cs
- GetResponse.cs
- FullTextLine.cs
- WebBrowsableAttribute.cs
- FilterEventArgs.cs
- EventPropertyMap.cs
- XmlDataSourceNodeDescriptor.cs
- EnvelopedPkcs7.cs
- CriticalExceptions.cs
- DataRelationCollection.cs
- PathSegmentCollection.cs
- MessageSecurityOverMsmq.cs
- DebuggerService.cs
- ResourceSetExpression.cs
- BookmarkTable.cs
- WebFormDesignerActionService.cs
- ElementsClipboardData.cs
- EntitySet.cs
- SerialPinChanges.cs
- MatrixUtil.cs
- SoapSchemaExporter.cs
- PhysicalAddress.cs
- ConnectionPointCookie.cs
- AsyncPostBackTrigger.cs
- CompiledRegexRunner.cs
- NamespaceDisplay.xaml.cs
- TextControl.cs
- ProtectedConfiguration.cs
- storepermissionattribute.cs
- GestureRecognizer.cs
- ChtmlFormAdapter.cs
- AQNBuilder.cs
- ErrorRuntimeConfig.cs
- HttpException.cs
- CodeGotoStatement.cs
- ConnectionPoint.cs
- BitArray.cs
- DataSourceCache.cs
- DrawingImage.cs
- ExpressionBuilderContext.cs
- IArgumentProvider.cs
- DomainConstraint.cs
- TextEndOfLine.cs
- invalidudtexception.cs
- SourceSwitch.cs
- GenericsInstances.cs
- BookmarkScopeManager.cs
- VersionValidator.cs
- EventPrivateKey.cs
- BinHexEncoding.cs
- Transform3D.cs
- FontWeight.cs
- UnaryOperationBinder.cs
- RoleManagerSection.cs
- Scene3D.cs
- ConfigurationSectionGroupCollection.cs
- unitconverter.cs
- ReservationNotFoundException.cs
- TransactionFormatter.cs
- GridViewCommandEventArgs.cs
- TemplateGroupCollection.cs
- CreateUserWizard.cs
- LinkButton.cs
- WebPartZone.cs
- SerializationSectionGroup.cs
- LocatorPart.cs
- LinearGradientBrush.cs
- Point3DKeyFrameCollection.cs
- StylusShape.cs
- CheckBox.cs
- XmlStreamNodeWriter.cs
- XmlIncludeAttribute.cs
- QueueProcessor.cs
- AuthorizationRuleCollection.cs
- typedescriptorpermission.cs
- ETagAttribute.cs
- RequestBringIntoViewEventArgs.cs
- ExtensionDataObject.cs
- HttpProfileBase.cs
- DecimalStorage.cs
- PassportAuthentication.cs
- CodeGenHelper.cs
- XmlElement.cs
- SafeCoTaskMem.cs