// 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");
        }
Example #2
0
        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();
            }
        }