none
Carregar HttpSessionState manualmente RRS feed

  • Discussão Geral

  • Eu fiz um HttpHandler (aquivo ASHX) que preciso que carregue o HttpSessionState em tempo de execução, via código, durante um processamento.

    Eu sei que poderia implementar a interface IRequestSessionState, mas como não quero carregar a sessão sempre, e sim somente se um determinado critério aconteça não me adiantaria muito. Além disso (e se alguém souber o porque me diga) quando faço isso meu antivirus marca o programa (DLL) gerado como malicioso!

    public class ContentManager : IHttpHandler
    {
        public bool IsReusable { get { return false; } }
    
        public void ProcessRequest(HttpContext context)
        {
            string Qr = context.Request.QueryString["target"];
            if (Qr == "heartbeat")
            {
                //carregar a SessionState
            }
            else
            {
                //faz outras coisas, não preciso da SessionState
            }
        }
    }

    Alguém sabe como fazer? Já andei um bocado no código do DotNet em referencesource.microsoft (SessionState) sem sucesso.

    • Tipo Alterado SammuelMiranda segunda-feira, 12 de junho de 2017 18:15
    quarta-feira, 22 de fevereiro de 2017 12:48

Todas as Respostas

  • Tem um tempo já essa pergunta, até hoje ninguém viu e eu tenho procurado, sem sucesso - imagino que seja um pepino bem específico.

    Uma alternativa que vi seria implementar na classe a interface "IRequiresSessionState". Se o fizer, "funciona".
    Meu objetivo era carregar só quando necessário, por isso queria fazer a partir do processamento, e se não fosse necessário, não carregaria - ao implementar a interface, carrega sempre.

    Por algum motivo, no entanto, ao colocar essa interface (sem mudar nada no código do meu programa, apenas essa parte) o antivirus (uso COMODO) alerta minha DLL (a DLL gerada pelo ASP/C#) como uma ameaça! Porque?

    quarta-feira, 7 de junho de 2017 12:47
  • Bom dia, SammuelMiranda.

    Essa seria uma pergunta de "How to". Não é um "Break fix".

    Sugiro que abra essa questão como Discussão, para que junto com a comunidade possam discutir sobre isso, chegar no que você precisa, entender o que você quer, da melhor maneira!

    Para abrir uma discussão, faça o mesmo processo de criar uma pergunta, mas ao invés de marcar como pergunta, marque como discussão. Assim:    :)

    quarta-feira, 7 de junho de 2017 13:06