Exemple #1
0
    internal static uint IsAuthenicatedPr3User(this HttpContext httpContext)
    {
        if (httpContext.Request.Headers.TryGetValue("Referer", out StringValues referer) && !HttpContextExtensions.IsAllowed(referer))
        {
            return(0u);            //Block possible bad request
        }

        if (httpContext.Request.Headers.TryGetValue("Origin", out StringValues origin) && !HttpContextExtensions.IsAllowed(origin))
        {
            return(0u);            //Block possible bad request
        }

        ClaimsPrincipal claimsPrincipal = httpContext.User;

        if (claimsPrincipal != null)
        {
            IIdentity identity = claimsPrincipal.Identity;
            if (identity != null && identity.IsAuthenticated && identity.Name == HttpContextExtensions.AUTHENICATION_IDENTITY)
            {
                if (uint.TryParse(claimsPrincipal.FindFirstValue(ClaimTypes.Sid), out uint userId))
                {
                    return(userId);
                }
            }
        }

        return(0u);
    }