RightsManagementInformation.CryptoProvider Property


Gets or sets the CryptoProvider for accessing the package's encrypted rights management data stream.

Namespace:   System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)

public CryptoProvider CryptoProvider { get; set; }

Property Value

Type: System.Security.RightsManagement.CryptoProvider

The CryptoProvider for accessing the rights management information.

The following example shows how to set the CryptoProvider property.

ShowStatus("   Binding UseLicense with the SecureEnvironment" +
         "\n       to obtain the CryptoProvider.");
rmi.CryptoProvider = useLicense.Bind(_secureEnv);

ShowStatus("   Obtaining BoundGrants.");
grants = rmi.CryptoProvider.BoundGrants;

// You can access the Package via GetPackage() at this point.

rightsBlock.Text = "GRANTS LIST\n-----------\n";
foreach (ContentGrant grant in grants)
    rightsBlock.Text += "USER  :" + grant.User.Name + " [" +
        grant.User.AuthenticationType + "]\n";
    rightsBlock.Text += "RIGHT :" + grant.Right.ToString()+"\n";
    rightsBlock.Text += "    From:  " + grant.ValidFrom + "\n";
    rightsBlock.Text += "    Until: " + grant.ValidUntil + "\n";

The following example shows how to access the CryptoProvider property.

if (rmi.CryptoProvider.CanDecrypt == true)
    ShowStatus("   Decryption granted.");
    ShowStatus("   CANNOT DECRYPT!");

ShowStatus("   Getting the Package from\n" +
           "      the EncryptedPackage.");
_xpsPackage = ePackage.GetPackage();
if (_xpsPackage == null)
    MessageBox.Show("Unable to get Package.");
    return false;

// Set a PackageStore Uri reference for the encrypted stream.
// ("sdk://packLocation" is a pseudo URI used by
//  PackUriHelper.Create to define the parserContext.BaseURI
//  that XamlReader uses to access the encrypted data stream.)
Uri packageUri = new Uri(@"sdk://packLocation", UriKind.Absolute);
// Add the URI package
PackageStore.AddPackage(packageUri, _xpsPackage);
// Determine the starting part for the package.
PackagePart startingPart = GetPackageStartingPart(_xpsPackage);

// Set the DocViewer.Document property.
ShowStatus("   Opening in DocumentViewer.");
ParserContext parserContext = new ParserContext();
parserContext.BaseUri = PackUriHelper.Create(
                            packageUri, startingPart.Uri);
parserContext.XamlTypeMapper = XamlTypeMapper.DefaultMapper;
DocViewer.Document = XamlReader.Load(
    startingPart.GetStream(), parserContext)
        as IDocumentPaginatorSource;

// Enable document menu controls.
menuFileClose.IsEnabled = true;
menuFilePrint.IsEnabled = true;
menuViewIncreaseZoom.IsEnabled = true;
menuViewDecreaseZoom.IsEnabled = true;

// Give the DocumentViewer focus.

.NET Framework
Available since 3.0
Return to top