예제 #1
0
        public override async Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto)
        {
            if (HostContext.AppHost.HasValidAuthSecret(req))
            {
                return;
            }

            await base.ExecuteAsync(req, res, requestDto); //first check if session is authenticated

            if (res.IsClosed)
            {
                return; //AuthenticateAttribute already closed the request (ie auth failed)
            }
            if (claims.Except(req.GetClaims().Select(c => c.Type)).Any())
            {
                return;
            }

            if (DoHtmlRedirectAccessDeniedIfConfigured(req, res))
            {
                return;
            }

            res.StatusCode        = (int)HttpStatusCode.Forbidden;
            res.StatusDescription = ErrorMessages.ClaimDoesNotExistFmt.Fmt(claims).Localize(req);
            await HostContext.AppHost.HandleShortCircuitedErrors(req, res, requestDto);
        }
예제 #2
0
    public void WriteObjectToStream(ServiceStack.Web.IRequest request, object response, Stream target)
    {
        var s = JsonConvert.SerializeObject(response, Formatting.None, this.settings);

        using (var writer = new StreamWriter(target, Encoding.UTF8, 1024, true))
        {
            writer.Write(s);
        }
    }