private void OnPostAuthenticateInternal(HttpApplication httpApplication) { HttpContext context = httpApplication.Context; if (!context.Request.IsAuthenticated) { bool flag = false; bool flag2 = false; string value = string.Empty; string httpMethod = context.Request.HttpMethod; string absolutePath = context.Request.Url.AbsolutePath; if (httpMethod.Equals("GET", StringComparison.OrdinalIgnoreCase) || httpMethod.Equals("HEAD", StringComparison.OrdinalIgnoreCase)) { if (HttpProxyGlobals.ProtocolType != ProtocolType.Autodiscover || (!ProtocolHelper.IsOAuthMetadataRequest(absolutePath) && !ProtocolHelper.IsAutodiscoverV2Request(absolutePath))) { flag2 = true; flag = true; value = "AutodiscoverEwsDiscovery"; } } else if (!ProtocolHelper.IsAnyWsSecurityRequest(context.Request.Url.AbsolutePath) && HttpProxyGlobals.ProtocolType != ProtocolType.Autodiscover) { flag2 = true; value = "AnonymousRequestDisallowed"; } if (!string.IsNullOrEmpty(value)) { context.Items[AnonymousRequestFilterModule.AnonymousRequestFilterModuleLoggingKey] = value; } if (flag) { AutodiscoverEwsDiscoveryResponseHelper.AddEndpointEnabledHeaders(context.Response); } if (flag2) { context.Response.StatusCode = 401; context.Response.StatusDescription = "Anonymous Request Disallowed"; httpApplication.CompleteRequest(); } } }
public static bool IsAnyWsSecurityRequest(this HttpRequest request) { return(ProtocolHelper.IsAnyWsSecurityRequest(request.Url.LocalPath)); }