Example #1
0
 internal override void UpdateIterationSuccessCount(ErrorRecord errorRecord)
 {
     if (errorRecord == null || ProvisioningMonitoringConfig.IsExceptionWhiteListedForCmdlet(errorRecord, this.cmdletName))
     {
         TenantMonitor.LogActivity(this.counterForIterationSuccesses, this.instanceName);
     }
 }
		// Token: 0x06000014 RID: 20 RVA: 0x00002B48 File Offset: 0x00000D48
		private static void OnPostAuthenticateRequest(object source, EventArgs args)
		{
			HttpApplication httpApplication = (HttpApplication)source;
			HttpContext context = httpApplication.Context;
			Logger.EnterFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
			if (!context.Request.IsAuthenticated)
			{
				Logger.LogWarning(LiveIdRedirectionModule.traceSrc, "OnPostAuthenticateRequest was called on a not Authenticated Request!");
				Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
				return;
			}
			if (!RedirectionHelper.ShouldProcessLiveIdRedirection(context))
			{
				Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Redirection Logic skipped for user '{0}'.", new object[]
				{
					context.User.ToString()
				});
				Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
				return;
			}
			bool flag = true;
			string text = null;
			string text2 = (string)HttpContext.Current.Items["WLID-MemberName"];
			if (RedirectionHelper.IsUserTenantOnCurrentSiteCache(text2))
			{
				Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Redirection Logic skipped, user '{0}' is present on the current site cache.", new object[]
				{
					text2
				});
				Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
				return;
			}
			if (context.Request.LogonUserIdentity.IsSystem && !(context.User.Identity is GenericSidIdentity) && !string.IsNullOrEmpty(text2))
			{
				flag = false;
				if (!SmtpAddress.IsValidSmtpAddress(text2))
				{
					Logger.LogWarning(LiveIdRedirectionModule.traceSrc, "Cannot convert memberName to SMTP address. No redirection available.");
					Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
					return;
				}
				text = SmtpAddress.Parse(text2).Domain;
			}
			else
			{
				if (!LiveIdRedirectionModule.TryResolveCurrentUserInLocalForest(context.User, LiveIdRedirectionModule.traceSrc, out text))
				{
					Logger.LogWarning(LiveIdRedirectionModule.traceSrc, "Cannot resolve the current request user account in local forest.");
					Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
					return;
				}
				if (string.IsNullOrEmpty(text))
				{
					Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Tenant Name cannot be resolved from the Url.");
					Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
					return;
				}
			}
			TenantMonitor.LogActivity(CounterType.HomeSiteLocationAttempts, text);
			Uri originalUrl = RedirectionHelper.RemovePropertiesFromOriginalUri(context.Request.Url, RedirectionConfig.RedirectionUriFilterProperties);
			if (!flag)
			{
				Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Current request user is external to local AD.");
				Uri redirectUrlForTenantForest = RedirectionHelper.GetRedirectUrlForTenantForest(text, RedirectionConfig.PodRedirectTemplate, originalUrl, RedirectionConfig.PodSiteStartRange, RedirectionConfig.PodSiteEndRange);
				if (null != redirectUrlForTenantForest)
				{
					Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Redirecting user to {0}.", new object[]
					{
						redirectUrlForTenantForest
					});
					context.Response.Redirect(redirectUrlForTenantForest.ToString());
					TenantMonitor.LogActivity(CounterType.HomeSiteLocationSuccesses, text);
				}
				else
				{
					Logger.LogEvent(LiveIdRedirectionModule.eventLogger, TaskEventLogConstants.Tuple_LiveIdRedirection_FailedToResolveForestRedirection, text2, new object[]
					{
						text,
						text2
					});
				}
			}
			else
			{
				Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Current request user is present in AD.");
				Uri uri = null;
				Exception ex = null;
				try
				{
					uri = RedirectionHelper.GetRedirectUrlForTenantSite(text, RedirectionConfig.SiteRedirectTemplate, originalUrl, LiveIdRedirectionModule.eventLogger);
					TenantMonitor.LogActivity(CounterType.HomeSiteLocationSuccesses, text);
				}
				catch (RedirectionLogicException ex2)
				{
					ex = ex2;
				}
				catch (DataSourceOperationException ex3)
				{
					ex = ex3;
				}
				catch (TransientException ex4)
				{
					ex = ex4;
				}
				catch (DataValidationException ex5)
				{
					ex = ex5;
				}
				if (ex != null)
				{
					Logger.GenerateErrorMessage(context.Response, LiveIdRedirectionModule.eventLogger, TaskEventLogConstants.Tuple_LiveIdRedirection_ServerError, ex, text);
				}
				else if (null != uri)
				{
					Logger.LogVerbose(LiveIdRedirectionModule.traceSrc, "Redirecting user to {0}.", new object[]
					{
						uri
					});
					context.Response.Redirect(uri.ToString());
				}
				else
				{
					RedirectionHelper.AddTenantToCurrentSiteCache(text);
				}
			}
			Logger.ExitFunction(ExTraceGlobals.RedirectionTracer, "LiveIdRedirectionModule.OnPostAuthenticateRequest");
		}
Example #3
0
 internal override void IncrementIterationInvocationCount()
 {
     TenantMonitor.LogActivity(this.counterForIterationAttempts, this.instanceName);
 }