예제 #1
0
        /// <summary>
        /// <see cref="MS.Internal.Documents.Application.IDocumentController"/>
        /// </summary>
        bool IDocumentController.Open(Document document)
        {
            PackageDocument doc = (PackageDocument)document;

            TransactionalPackage package = new RestrictedTransactionalPackage(
                doc.Source);

            doc.Package = package;

            DocumentProperties.Current.SetXpsProperties(package.PackageProperties);

            DocumentSignatureManager.Initialize(new DigitalSignatureProvider(package));

            // when signatures change (are added or removed) we can no longer simply copy bits on disk
            DocumentSignatureManager.Current.SignaturesChanged +=
                new EventHandler(
                    delegate(
                        object sender,
                        EventArgs args)
            {
                if (doc.IsFileCopySafe)
                {
                    Trace.SafeWrite(
                        Trace.Signatures,
                        "Disabling file copy for current document.");
                    doc.IsFileCopySafe = false;
                }
            });

            return(true);
        }
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------

        /// <summary>
        /// Constructor
        /// </summary>
        internal RequestedSignatureDialog(DocumentSignatureManager docSigManager)
        {
            if (docSigManager != null)
            {
                //Init private fields
                _documentSignatureManager = docSigManager;
            }
            else
            {
                throw new ArgumentNullException("docSigManager");
            }

            // Initialize the "Must Sign By:" field
            _dateTimePicker.MinDate = DateTime.Now;
            _dateTimePicker.Value   = DateTime.Now.AddDays(10);
        }
예제 #3
0
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="IList<SignatureResources>">Ad</param>
        /// <param name="docSigManager">The DocSigManager ref so dialog can call sign method.</param>
        /// <returns></returns>
        internal SignatureSummaryDialog(IList <SignatureResources> signatureResourcesList,
                                        DocumentSignatureManager docSigManager,
                                        bool showRequestDialog
                                        )
        {
            //Init private fields
            _documentSignatureManager = docSigManager;

            //Set Dialog Type (Summary or Request)
            _showRequestDialog = showRequestDialog;

            //  Initialize all the UI components
            InitializeDialogType();

            //Show only the buttons appropriate for the current mode.
            if (_showRequestDialog == true)
            {
                Text = SR.Get(SRID.DigSigRequestTitle);

                _buttonSign.Visible          = false;
                _buttonViewCert.Visible      = false;
                _buttonRequestAdd.Visible    = true;
                _buttonRequestDelete.Visible = true;
            }
            else
            {
                Text = SR.Get(SRID.DigSigSumTitle);

                _buttonRequestAdd.Visible    = false;
                _buttonRequestDelete.Visible = false;
                _buttonSign.Visible          = true;
                _buttonViewCert.Visible      = true;
            }

            //Find the signatures applied to this package and add them to the the ListBox
            foreach (SignatureResources signatureResources in signatureResourcesList)
            {
                AddDigSig(signatureResources);
            }

            // Add a handler to update the dialog when signature status changes
            DocumentSignatureManager.Current.SignatureStatusChange +=
                new DocumentSignatureManager.SignatureStatusChangeHandler(OnSignatureStatusChange);
        }
예제 #4
0
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------

        /// <summary>
        /// The constructor
        /// </summary>
        internal SigningDialog(X509Certificate2 x509Certificate2, DigitalSignature digitalSignatureRequest, DocumentSignatureManager docSigManager)
        {
            if (x509Certificate2 == null)
            {
                throw new ArgumentNullException("x509Certificate2");
            }
            if (docSigManager == null)
            {
                throw new ArgumentNullException("docSigManager");
            }

            _docSigManager    = docSigManager;
            _x509Certificate2 = x509Certificate2;   // setting critical data.

            //This can be null and if so means this is a regular first signing
            //(not signing a request or 2nd/3rd.. regular request which can't have
            //signatureDefinitions.)
            _digitalSignatureRequest = digitalSignatureRequest;

            //Now we need to set all DigSig Specific Text
            ApplySignatureSpecificResources();

            _signButton.Enabled = false;

            // Check DocumentManager to see if we can save package
            DocumentManager documentManager = DocumentManager.CreateDefault();

            if (documentManager != null)
            {
                _signButton.Enabled = documentManager.CanSave;
            }

            if (DocumentRightsManagementManager.Current != null)
            {
                _signSaveAsButton.Enabled = DocumentRightsManagementManager.Current.HasPermissionToSave;
            }
        }