// Token: 0x06001439 RID: 5177 RVA: 0x0004A0D8 File Offset: 0x000482D8 private void OnAuthenticateRequest(object source, EventArgs e) { ExTraceGlobals.AccessCheckTracer.TraceDebug(0L, "Start OnAuthenticateRequest"); HttpApplication httpApplication = (HttpApplication)source; HttpContext context = httpApplication.Context; UserToken userToken = context.CurrentUserToken(); if (this.IsDelegatedAuth(context)) { ExTraceGlobals.AccessCheckTracer.TraceDebug(0L, "Delegated auth, let delegated auth module handle the request"); } else { if (context.Request.IsAuthenticated && userToken.HasCommonAccessToken) { try { if (userToken.HasCommonAccessToken && ProxySecurityContextModule.AuthenticationTypes.ContainsKey(userToken.AuthenticationType)) { string text = ProxySecurityContextModule.AuthenticationTypes[userToken.AuthenticationType]; if (context.User != null && context.User.Identity != null) { context.Items["AuthType"] = context.User.Identity.AuthenticationType; if (!context.Items.Contains("AuthenticatedUser")) { context.Items["AuthenticatedUser"] = context.User.Identity.Name; } else { HttpLogger.SafeAppendGenericInfo("User.Identity", context.User.Identity.Name); } } ExTraceGlobals.AccessCheckTracer.TraceDebug <AuthenticationType, string>(0L, "Token Type = {0}, AuthenticationType = {1}.", userToken.AuthenticationType, text); ExAssert.RetailAssert(context.User != null && context.User.Identity != null && context.User.Identity.Name != null, "HttpContext.User.Identity.Name should not be null."); GenericIdentity identity = new GenericIdentity(context.User.Identity.Name.ToLower(), text); context.User = new GenericPrincipal(identity, new string[0]); ProxySecurityContextModule.SendAuthenticationDataToWinRM(context, userToken); } goto IL_201; } catch (Exception ex) { HttpModuleHelper.EndPowerShellRequestWithFriendlyError(context, FailureCategory.ProxySecurityContext, "Exception", ex.ToString(), "ProxySecurityContextModule", KnownException.IsUnhandledException(ex)); goto IL_201; } } ExTraceGlobals.AccessCheckTracer.TraceDebug(0L, "Request is Unauthorized."); WinRMInfo.SetFailureCategoryInfo(context.Response.Headers, FailureCategory.ProxySecurityContext, "Unauthorized"); context.Response.StatusCode = 401; httpApplication.CompleteRequest(); } IL_201: ExTraceGlobals.AccessCheckTracer.TraceDebug(0L, "Exit OnAuthenticateRequest"); }
internal static bool RevertExpiredThrottlingPolicyIfNeeded(IPowerShellBudget budget) { if (budget == null) { return(false); } bool result; using (new MonitoredScope("PowerShellThrottlingPolicyUpdater", "RevertExpiredThrottlingPolicyIfNeeded", AuthZLogHelper.AuthZPerfMonitors)) { ThrottlingPolicy throttlingPolicy = null; try { throttlingPolicy = ((EffectiveThrottlingPolicy)budget.ThrottlingPolicy).ThrottlingPolicy; Match match = Regex.Match(throttlingPolicy.Name, "^\\[(?<expiredtime>[0-9]{4}(-[0-9]{2}){2}T([0-9]{2}:){2}[0-9]{2})\\](?<orginalname>.+)", RegexOptions.Compiled); DateTime t; if (!match.Success) { result = false; } else if (!DateTime.TryParse(match.Groups["expiredtime"].Value, out t)) { AuthZLogger.SafeAppendGenericInfo("PowerShellThrottlingPolicyUpdater", string.Format("Unrecognized time format in throttling policy '{0}'.", throttlingPolicy.Name)); result = false; } else if (t > DateTime.UtcNow) { AuthZLogger.SafeAppendGenericInfo("PowerShellThrottlingPolicyUpdater", string.Format("Throttlling policy '{0}' is not expired yet.", throttlingPolicy.Name)); result = false; } else { IConfigurationSession configuationSession = PowerShellThrottlingPolicyUpdater.GetConfiguationSession(throttlingPolicy.OrganizationId); ThrottlingPolicy writableThrottlingPolicy = PowerShellThrottlingPolicyUpdater.GetWritableThrottlingPolicy(configuationSession, throttlingPolicy); if (writableThrottlingPolicy == null || writableThrottlingPolicy.Name != throttlingPolicy.Name) { AuthZLogger.SafeAppendGenericInfo("PowerShellThrottlingPolicyUpdater", string.Format("Throttlling policy '{0}' is updated and don't need to be expired.", throttlingPolicy.Name)); result = false; } else { string arg; if (PowerShellThrottlingPolicyUpdater.RevertBackupThrottlingSettings(writableThrottlingPolicy, out arg)) { writableThrottlingPolicy.Name = match.Groups["orginalname"].Value; configuationSession.Save(writableThrottlingPolicy); AuthZLogger.SafeAppendGenericInfo("PowerShellThrottlingPolicyUpdater", string.Format("Revert throttling policy '{0}' to name: {1} and restore backup throttling value: {2}.", throttlingPolicy.Name, writableThrottlingPolicy.Name, arg)); } else { PowerShellThrottlingPolicyUpdater.ClearThrottlingPolicyAssoicate(PowerShellThrottlingPolicyUpdater.GetRecipientSession(throttlingPolicy.OrganizationId), throttlingPolicy); configuationSession.Delete(writableThrottlingPolicy); AuthZLogger.SafeAppendGenericInfo("PowerShellThrottlingPolicyUpdater", string.Format("Delete throttling policy '{0}' and clear associates with it.", throttlingPolicy.Name)); } result = true; } } } catch (TransientException arg2) { AuthZLogger.SafeAppendGenericInfo("PowerShellThrottlingPolicyUpdater", string.Format("Occur transient exception on revert throttling policy '{0}': {1}", (throttlingPolicy != null) ? throttlingPolicy.Name : string.Empty, arg2)); result = false; } catch (Exception ex) { AuthZLogger.SafeAppendGenericError("PowerShellThrottlingPolicyUpdater", string.Format("Error on revert throttling policy '{0}': {1}", (throttlingPolicy != null) ? throttlingPolicy.Name : string.Empty, ex), KnownException.IsUnhandledException(ex)); result = false; } } return(result); }