Ejemplo n.º 1
0
        // Token: 0x060000E7 RID: 231 RVA: 0x00005928 File Offset: 0x00003B28
        public static bool TryCreateFromMailboxGuid(IRequestContext requestContext, string anchorMailboxAddress, out AnchorMailbox anchorMailbox)
        {
            anchorMailbox = null;
            Guid   mailboxGuid;
            string domain;

            if (RequestHeaderParser.TryGetMailboxGuid(anchorMailboxAddress, ref mailboxGuid, ref domain))
            {
                requestContext.Logger.SafeSet(3, "URL-MailboxGuidWithDomain");
                anchorMailbox = new MailboxGuidAnchorMailbox(mailboxGuid, domain, requestContext);
                return(true);
            }
            return(false);
        }
        // Token: 0x0600049C RID: 1180 RVA: 0x0001973C File Offset: 0x0001793C
        private bool TryMatchByGuidAtDomain(AnonymousPublishingUrl publishingUrl, out AnchorMailbox anchorMailbox)
        {
            anchorMailbox = null;
            string text   = publishingUrl.ParameterSegments[0];
            Guid   empty  = Guid.Empty;
            string empty2 = string.Empty;

            if (RequestHeaderParser.TryGetMailboxGuid(text, ref empty, ref empty2))
            {
                string text2 = string.Format("AnonymousPublishingUrl-MailboxGuid{0}", string.IsNullOrEmpty(empty2) ? string.Empty : "WithDomainAndSmtpFallback");
                base.Logger.Set(3, text2);
                MailboxGuidAnchorMailbox mailboxGuidAnchorMailbox = new MailboxGuidAnchorMailbox(empty, empty2, this);
                if (!string.IsNullOrEmpty(empty2))
                {
                    mailboxGuidAnchorMailbox.FallbackSmtp = text;
                }
                anchorMailbox = mailboxGuidAnchorMailbox;
            }
            return(anchorMailbox != null);
        }
Ejemplo n.º 3
0
        // Token: 0x060000E8 RID: 232 RVA: 0x00005968 File Offset: 0x00003B68
        public static ArchiveSupportedAnchorMailbox ParseAnchorMailboxFromSmtp(IRequestContext requestContext, string smtpAddress, string source, bool failOnDomainNotFound)
        {
            Guid   empty  = Guid.Empty;
            string empty2 = string.Empty;

            if (RequestHeaderParser.TryGetMailboxGuid(smtpAddress, ref empty, ref empty2))
            {
                string value = string.Format("{0}-MailboxGuid{1}", source, string.IsNullOrEmpty(empty2) ? string.Empty : "WithDomainAndSmtpFallback");
                requestContext.Logger.SafeSet(3, value);
                MailboxGuidAnchorMailbox mailboxGuidAnchorMailbox = new MailboxGuidAnchorMailbox(empty, empty2, requestContext);
                if (!string.IsNullOrEmpty(empty2))
                {
                    mailboxGuidAnchorMailbox.FallbackSmtp = smtpAddress;
                }
                return(mailboxGuidAnchorMailbox);
            }
            requestContext.Logger.SafeSet(3, string.Format("{0}-SMTP", source));
            return(new SmtpAnchorMailbox(smtpAddress, requestContext)
            {
                FailOnDomainNotFound = failOnDomainNotFound
            });
        }
Ejemplo n.º 4
0
        // Token: 0x060000E6 RID: 230 RVA: 0x000056D4 File Offset: 0x000038D4
        public static AnchorMailbox TryCreateFromRoutingHint(IRequestContext requestContext, bool tryTargetServerRoutingHint)
        {
            if (requestContext == null)
            {
                throw new ArgumentNullException("requestContext");
            }
            string fqdn;

            if (tryTargetServerRoutingHint && RequestHeaderParser.TryGetTargetServer(requestContext.HttpContext.Request.Headers, ref fqdn))
            {
                requestContext.Logger.Set(3, "TargetServerHeader");
                return(new ServerInfoAnchorMailbox(fqdn, requestContext));
            }
            string text;

            if (!RequestHeaderParser.TryGetAnchorMailbox(requestContext.HttpContext.Request.Headers, ref text))
            {
                return(null);
            }
            Match match = RegexUtilities.TryMatch(Constants.SidRegex, text);

            if (match != null && match.Success)
            {
                string text2 = RegexUtilities.ParseIdentifier(match, "${sid}");
                if (!string.IsNullOrEmpty(text2))
                {
                    SecurityIdentifier securityIdentifier = null;
                    try
                    {
                        securityIdentifier = new SecurityIdentifier(text2);
                    }
                    catch (ArgumentException ex)
                    {
                        requestContext.Logger.AppendGenericError("Ignored Exception", ex.ToString());
                    }
                    catch (SystemException ex2)
                    {
                        requestContext.Logger.AppendGenericError("Ignored Exception", ex2.ToString());
                    }
                    if (securityIdentifier != null)
                    {
                        requestContext.Logger.SafeSet(3, "AnchorMailboxHeader-SID");
                        return(new SidAnchorMailbox(securityIdentifier, requestContext));
                    }
                }
            }
            Guid   mailboxGuid;
            string text3;

            if (RequestHeaderParser.TryGetMailboxGuid(text, ref mailboxGuid, ref text3))
            {
                string value = string.Format("AnchorMailboxHeader-MailboxGuid{0}", string.IsNullOrEmpty(text3) ? string.Empty : "WithDomain");
                requestContext.Logger.SafeSet(3, value);
                MailboxGuidAnchorMailbox mailboxGuidAnchorMailbox = new MailboxGuidAnchorMailbox(mailboxGuid, text3, requestContext);
                if (!string.IsNullOrEmpty(text3))
                {
                    mailboxGuidAnchorMailbox.FallbackSmtp = text;
                }
                return(mailboxGuidAnchorMailbox);
            }
            if (PuidAnchorMailbox.IsEnabled)
            {
                NetID netID;
                Guid  tenantGuid;
                if (RequestHeaderParser.TryGetNetIdAndTenantGuid(text, ref netID, ref tenantGuid))
                {
                    requestContext.Logger.Set(3, "AnchorMailboxHeader-PuidAndTenantGuid");
                    return(new PuidAnchorMailbox(netID.ToString(), tenantGuid, requestContext, text));
                }
                string text4;
                if (RequestHeaderParser.TryGetNetIdAndDomain(text, ref netID, ref text4))
                {
                    if (string.IsNullOrEmpty(text4))
                    {
                        requestContext.Logger.Set(3, "AnchorMailboxHeader-Puid");
                        return(new PuidAnchorMailbox(netID.ToString(), requestContext, text));
                    }
                    requestContext.Logger.Set(3, "AnchorMailboxHeader-PuidAndDomain");
                    return(new PuidAnchorMailbox(netID.ToString(), text4, requestContext, text));
                }
            }
            if (SmtpAddress.IsValidSmtpAddress(text))
            {
                requestContext.Logger.Set(3, "AnchorMailboxHeader-SMTP");
                return(new SmtpAnchorMailbox(text, requestContext));
            }
            return(null);
        }