Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....] : 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
- RoleService.cs
- UIPermission.cs
- DataGridViewHeaderCell.cs
- AsyncInvokeContext.cs
- Accessible.cs
- SchemaLookupTable.cs
- CompositeFontInfo.cs
- storepermissionattribute.cs
- Type.cs
- FormsAuthenticationCredentials.cs
- DataGridViewTextBoxColumn.cs
- FormatterConverter.cs
- SyntaxCheck.cs
- Panel.cs
- ResolvedKeyFrameEntry.cs
- LiteralControl.cs
- VariableQuery.cs
- ISO2022Encoding.cs
- XPathBuilder.cs
- TypeBuilder.cs
- TextBox.cs
- NamespaceDecl.cs
- DelimitedListTraceListener.cs
- DeviceFilterDictionary.cs
- KernelTypeValidation.cs
- WmfPlaceableFileHeader.cs
- MaskedTextBoxDesignerActionList.cs
- ConnectionStringsSection.cs
- WebPartCancelEventArgs.cs
- HttpResponseWrapper.cs
- ViewKeyConstraint.cs
- UpDownEvent.cs
- DiscoveryClientDuplexChannel.cs
- ExpandSegmentCollection.cs
- StyleXamlParser.cs
- KeyConstraint.cs
- ListView.cs
- WmlListAdapter.cs
- DataRowView.cs
- EventMappingSettingsCollection.cs
- ToolStripRenderer.cs
- InputProcessorProfiles.cs
- DynamicControlParameter.cs
- ControlType.cs
- CalendarButtonAutomationPeer.cs
- XmlSchemaSimpleTypeUnion.cs
- srgsitem.cs
- RecordConverter.cs
- QilName.cs
- FillBehavior.cs
- ClientSession.cs
- HtmlElementEventArgs.cs
- TableItemPatternIdentifiers.cs
- Converter.cs
- MemberPath.cs
- CryptographicAttribute.cs
- InsufficientExecutionStackException.cs
- TableLayoutStyle.cs
- RsaKeyGen.cs
- Part.cs
- ZoneButton.cs
- XmlDataLoader.cs
- InputLanguageCollection.cs
- TemplateParser.cs
- XamlFigureLengthSerializer.cs
- GridViewSortEventArgs.cs
- RTLAwareMessageBox.cs
- BaseCodePageEncoding.cs
- AdjustableArrowCap.cs
- OperationContractAttribute.cs
- XPathDescendantIterator.cs
- TrustSection.cs
- FileStream.cs
- DbDeleteCommandTree.cs
- DateTimeOffsetConverter.cs
- RNGCryptoServiceProvider.cs
- SpecularMaterial.cs
- WindowsPrincipal.cs
- UniqueIdentifierService.cs
- ThousandthOfEmRealPoints.cs
- IListConverters.cs
- MetabaseServerConfig.cs
- HtmlDocument.cs
- ToolStripDropDownClosedEventArgs.cs
- RightsManagementInformation.cs
- COM2ColorConverter.cs
- BindingContext.cs
- ScriptResourceInfo.cs
- RemoteCryptoRsaServiceProvider.cs
- ColorTransformHelper.cs
- SqlRewriteScalarSubqueries.cs
- StringStorage.cs
- DataRowExtensions.cs
- SpellerStatusTable.cs
- ProfileSettings.cs
- HMAC.cs
- TypeInformation.cs
- StreamWithDictionary.cs
- BitmapEffectGeneralTransform.cs
- BindingListCollectionView.cs