private Stream LoadUNCDocument(bool isLoadingStream)
        {
            if (!DocumentLibraryUtilities.IsNavigationToUNCAllowed(this.owaContext.UserContext))
            {
                throw new OwaSegmentationException("Access to Unc documents is disabled");
            }
            DocumentLibraryObjectId documentLibraryObjectId = DocumentLibraryUtilities.CreateDocumentLibraryObjectId(this.owaContext);
            UncSession  session     = this.owaContext.UserContext.LogonIdentity.CreateUncSession(documentLibraryObjectId);
            UncDocument uncDocument = UncDocument.Read(session, documentLibraryObjectId);

            this.mimeType     = (uncDocument[UncDocumentSchema.FileType] as string);
            this.fileName     = Path.GetFileName(uncDocument.Uri.ToString());
            this.fileSize     = uncDocument.Size;
            this.documentPath = uncDocument.Uri.ToString();
            string queryStringParameter = Utilities.GetQueryStringParameter(this.owaContext.HttpContext.Request, "URL");

            this.openLink = string.Concat(new string[]
            {
                "ev.owa?ns=UncDocument&ev=GetDoc&allowLevel2=1&URL=",
                Utilities.UrlEncode(queryStringParameter),
                "&id=",
                Utilities.UrlEncode(documentLibraryObjectId.ToBase64String()),
                Utilities.GetCanaryRequestParameter()
            });
            this.documentIdStringBuilder.Append(documentLibraryObjectId.ToBase64String());
            this.documentIdStringBuilder.Append("-");
            object obj = uncDocument.TryGetProperty(UncItemSchema.LastModifiedDate);

            if (obj is DateTime)
            {
                this.documentIdStringBuilder.Append(((DateTime)obj).Ticks);
            }
            if (!isLoadingStream)
            {
                return(null);
            }
            return(uncDocument.GetDocument());
        }
Exemple #2
0
        // Token: 0x06002432 RID: 9266 RVA: 0x000D1148 File Offset: 0x000CF348
        protected void RenderSecondaryNavigation(TextWriter output, bool showContacts)
        {
            if (output == null)
            {
                throw new ArgumentNullException("output");
            }
            output.Write("<div id=\"{0}\" class=\"secNvPaneCont\">", this.lastModuleName);
            switch (this.navigationModule)
            {
            case NavigationModule.Mail:
                NavigationHost.RenderMailSecondaryNavigation(output, base.UserContext);
                goto IL_229;

            case NavigationModule.Calendar:
            {
                PropertyDefinition[] propsToReturn = new PropertyDefinition[]
                {
                    ViewStateProperties.CalendarViewType,
                    ViewStateProperties.DailyViewDays
                };
                using (CalendarFolder calendarFolder = CalendarFolder.Bind(base.UserContext.MailboxSession, DefaultFolderType.Calendar, propsToReturn))
                {
                    DailyView.RenderSecondaryNavigation(output, calendarFolder, base.UserContext);
                    goto IL_229;
                }
                break;
            }

            case NavigationModule.Contacts:
                break;

            case NavigationModule.Tasks:
                TaskView.RenderSecondaryNavigation(output, base.UserContext);
                goto IL_229;

            case NavigationModule.Options:
                goto IL_21D;

            case NavigationModule.AddressBook:
                this.recipientBlockType = ((AddressBook)this).RecipientBlockType;
                if (base.UserContext.IsFeatureEnabled(Feature.GlobalAddressList))
                {
                    bool isRoomPicker = ((AddressBook)this).IsRoomPicker && DirectoryAssistance.IsRoomsAddressListAvailable(base.UserContext);
                    output.Write("<div class=\"abNavPane\" style=\"height:");
                    output.Write(showContacts ? "30" : "100");
                    output.Write("%;top:0px;\"><div id=\"divMdNmAD\">");
                    output.Write(LocalizedStrings.GetHtmlEncoded(346766088));
                    output.Write("</div><div id=\"divSecNvAD\">");
                    DirectoryView.RenderSecondaryNavigation(output, base.UserContext, isRoomPicker);
                    output.Write("</div></div>");
                }
                if (showContacts)
                {
                    output.Write("<div class=\"abNavPane\" style=\"height:");
                    output.Write(base.UserContext.IsFeatureEnabled(Feature.GlobalAddressList) ? "70" : "100");
                    output.Write("%;bottom:0px;\"><div id=\"divMdNmC\">");
                    output.Write(LocalizedStrings.GetHtmlEncoded(-1165546057));
                    output.Write("</div><div id=\"divSecNvC\"");
                    bool isPicker = ((AddressBook)this).IsPicker;
                    if (isPicker)
                    {
                        output.Write(" class=\"noFltrsCntRg\"");
                    }
                    output.Write(">");
                    ContactView.RenderSecondaryNavigation(output, base.UserContext, isPicker);
                    output.Write("</div></div>");
                    goto IL_229;
                }
                goto IL_229;

            case NavigationModule.Documents:
                DocumentLibraryUtilities.RenderSecondaryNavigation(output, base.UserContext);
                goto IL_229;

            case NavigationModule.PublicFolders:
                NavigationHost.RenderPublicFolderSecondaryNavigation(output, base.UserContext);
                goto IL_229;

            default:
                goto IL_21D;
            }
            ContactView.RenderSecondaryNavigation(output, base.UserContext, false);
            goto IL_229;
IL_21D:
            NavigationHost.RenderMailSecondaryNavigation(output, base.UserContext);
IL_229:
            output.Write("</div>");
        }
Exemple #3
0
        private string TryNavigateToInternalWssUnc(string uriParam, out ErrorInformation errorInformation)
        {
            errorInformation = null;
            if (base.UserContext.IsBasicExperience)
            {
                return(null);
            }
            Uri uri = Utilities.TryParseUri(uriParam);

            if (uri == null || string.IsNullOrEmpty(uri.Scheme) || string.IsNullOrEmpty(uri.Host))
            {
                return(null);
            }
            if (!DocumentLibraryUtilities.IsTrustedProtocol(uri.Scheme))
            {
                return(null);
            }
            if (!DocumentLibraryUtilities.IsInternalUri(uri.Host, base.UserContext))
            {
                return(null);
            }
            if (DocumentLibraryUtilities.IsBlockedHostName(uri.Host, base.UserContext))
            {
                return(null);
            }
            if (!DocumentLibraryUtilities.IsDocumentsAccessEnabled(base.UserContext))
            {
                return(null);
            }
            bool flag  = DocumentLibraryUtilities.IsNavigationToWSSAllowed(base.UserContext);
            bool flag2 = DocumentLibraryUtilities.IsNavigationToUNCAllowed(base.UserContext);
            bool flag3 = Redir.IsHttpOrHttps(uri.Scheme);
            bool flag4 = string.Equals(uri.Scheme, Uri.UriSchemeFile, StringComparison.OrdinalIgnoreCase);

            if ((flag3 && !flag) || (flag4 && !flag2))
            {
                return(null);
            }
            ClassifyResult documentLibraryObjectId = DocumentLibraryUtilities.GetDocumentLibraryObjectId(uri, base.UserContext);

            if (documentLibraryObjectId == null || documentLibraryObjectId.Error != ClassificationError.None)
            {
                return(null);
            }
            DocumentLibraryObjectId objectId = documentLibraryObjectId.ObjectId;

            if (objectId == null)
            {
                return(null);
            }
            if (objectId.UriFlags == UriFlags.Other)
            {
                return(null);
            }
            UriFlags uriFlags = objectId.UriFlags;
            bool     flag5    = (uriFlags & UriFlags.SharepointDocument) == UriFlags.SharepointDocument;
            bool     flag6    = (uriFlags & UriFlags.UncDocument) == UriFlags.UncDocument;

            if ((uriFlags & UriFlags.DocumentLibrary) == UriFlags.DocumentLibrary || (uriFlags & UriFlags.Folder) == UriFlags.Folder || uriFlags == UriFlags.Sharepoint || uriFlags == UriFlags.Unc)
            {
                return(string.Concat(new string[]
                {
                    OwaUrl.ApplicationRoot.GetExplicitUrl(base.OwaContext),
                    "?ae=Folder&t=IPF.DocumentLibrary&id=",
                    Utilities.UrlEncode(objectId.ToBase64String()),
                    "&URL=",
                    Utilities.UrlEncode(uriParam)
                }));
            }
            if (flag5)
            {
                if (!base.UserContext.IsBasicExperience && DocumentLibraryUtilities.IsWebReadyDocument(objectId, base.UserContext))
                {
                    this.openWebReadyForm = true;
                    return("WebReadyView.aspx?t=wss&id=" + Utilities.UrlEncode(objectId.ToBase64String()) + "&URL=" + Utilities.UrlEncode(uriParam));
                }
                return(string.Concat(new string[]
                {
                    "ev.owa?ns=SharepointDocument&ev=GetDoc&id=",
                    Utilities.UrlEncode(objectId.ToBase64String()),
                    "&URL=",
                    Utilities.UrlEncode(uriParam),
                    Utilities.GetCanaryRequestParameter()
                }));
            }
            else
            {
                if (!flag6)
                {
                    return(null);
                }
                if (!base.UserContext.IsBasicExperience && DocumentLibraryUtilities.IsWebReadyDocument(objectId, base.UserContext))
                {
                    this.openWebReadyForm = true;
                    return("WebReadyView.aspx?t=unc&id=" + Utilities.UrlEncode(objectId.ToBase64String()) + "&URL=" + Utilities.UrlEncode(uriParam));
                }
                return(string.Concat(new string[]
                {
                    "ev.owa?ns=UncDocument&ev=GetDoc&id=",
                    Utilities.UrlEncode(objectId.ToBase64String()),
                    "&URL=",
                    Utilities.UrlEncode(uriParam),
                    Utilities.GetCanaryRequestParameter()
                }));
            }
        }