// Token: 0x0600000C RID: 12 RVA: 0x000022C8 File Offset: 0x000004C8 private void OnAuthenticateRequest(object source, EventArgs args) { Logger.EnterFunction(ExTraceGlobals.RemotePowershellBackendCmdletProxyModuleTracer, "OnAuthenticateOrPostAuthenticateRequest"); HttpContext httpContext = HttpContext.Current; if (httpContext.Request.IsAuthenticated) { Logger.TraceDebug(ExTraceGlobals.RemotePowershellBackendCmdletProxyModuleTracer, "[RemotePowershellBackendCmdletProxyModule::OnAuthenticateOrPostAuthenticateRequest] Current authenticated user is {0} of type {1}.", new object[] { httpContext.User.Identity, httpContext.User.Identity.GetType() }); string value = httpContext.Request.Headers["X-CommonAccessToken"]; if (string.IsNullOrEmpty(value)) { Uri url = httpContext.Request.Url; Exception ex = null; CommonAccessToken commonAccessToken = RemotePowershellBackendCmdletProxyModule.CommonAccessTokenFromUrl(httpContext.User.Identity.ToString(), url, out ex); if (ex != null) { WinRMInfo.SetFailureCategoryInfo(httpContext.Response.Headers, FailureCategory.BackendCmdletProxy, ex.GetType().Name); httpContext.Response.StatusCode = 500; httpContext.ApplicationInstance.CompleteRequest(); } else if (commonAccessToken != null) { httpContext.Request.Headers["X-CommonAccessToken"] = commonAccessToken.Serialize(); Logger.TraceDebug(ExTraceGlobals.RemotePowershellBackendCmdletProxyModuleTracer, "[RemotePowershellBackendCmdletProxyModule::OnAuthenticateOrPostAuthenticateRequest] The CommonAccessToken has been successfully stampped in request HTTP header.", new object[0]); } } } Logger.ExitFunction(ExTraceGlobals.RemotePowershellBackendCmdletProxyModuleTracer, "OnAuthenticateOrPostAuthenticateRequest"); }
internal static void UniformCommonAccessToken(this UserToken userToken) { CommonAccessToken commonAccessToken = userToken.CommonAccessToken; if (commonAccessToken == null) { return; } CommonAccessToken commonAccessToken2 = CommonAccessToken.Deserialize(commonAccessToken.Serialize()); commonAccessToken2.Version = 0; commonAccessToken2.ExtensionData.Clear(); foreach (string key in UserTokenHelper.WinRMCATExtensionDataKeys) { if (commonAccessToken.ExtensionData.ContainsKey(key)) { commonAccessToken2.ExtensionData[key] = commonAccessToken.ExtensionData[key]; } } if (!commonAccessToken2.ExtensionData.ContainsKey("UserSid") && userToken.UserSid != null) { commonAccessToken2.ExtensionData["UserSid"] = userToken.UserSid.ToString(); } }