Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17081|Resposta: 2

[ASP.NET] httpContext.Current.Items

[Copiar link]
Publicado em 11/02/2018 10:42:10 | | | |

HTTP é um protocolo sem estado. Cada solicitação é independente, e sua execução e resultados não estão diretamente relacionados à solicitação anterior e à subsequente, e não será diretamente afetada pela resposta à solicitação anterior, nem afetará diretamente a resposta à solicitação subsequente.

Na verdade, nosso sistema frequentemente permite que os usuários compartilhem os mesmos dados (estado) entre o navegador cliente e o servidor múltiplas requisições, como as informações da conta de login do usuário. Portanto, ASP.NET fornece muitas variáveis para gerenciar o estado: estado da aplicação, estado da sessão, estado da visualização, etc.

O objeto HttpContext é apenas para uma única requisição http.As propriedades dessa classe também incluem objetos Request, Response objects, Session objects, etc. Esta é a coleção Items da classe HttpContext, que contém um objeto de tabela hash na forma de chave-valor.

Primeiro, vamos analisar o propósito do HttpContext.Current.Items, que funciona apenas com uma única solicitação de usuário (HttpContext.Current.Items válido para um único HTTPRequest). Quando essa solicitação é concluída, a coleta de itens será perdida quando as informações do servidor forem enviadas de volta ao navegador. O objeto Session é para a sessão do usuário, ou seja, ele atua em múltiplas requisições do usuário, e as informações são perdidas após o término da sessão.

Como o HttpContext.Current.Items tem um ciclo de vida tão curto, sob quais circunstâncias ele pode ser usado? Observa-se aqui que HttpContext.Current.Items pode ser usado ao compartilhar dados entre HttpModule e HTTPHandler, pois toda solicitação de usuário passa pelo pipeline de execução HTTP HttpModule, HTTPHandler. Quando você implementa o método IHttpMoudle para passar informações ao pedido do usuário via HttpMoudle. Você pode usar o HttpContext.Current.Items para transferir dados em diferentes páginas de requisição e diferentes HttpModules, mas uma vez que a solicitação termina e os dados são postados, os dados dessa coleção serão perdidos por si só. Como mostrado na figura a seguir:




Além disso, quando a página do servidor pula (Server.Execute/Server.Transfer), podemos usar o HttpContext.Current.Items para passar dados entre os dois formulários.
Obviamente, se você mudar Server.Transfer para Response.Redirect, não conseguirá obter os dados em HttpContext.Current.Items na nova página porque é uma requisição Http diferente. System.NullReferenceException: A referência do objeto não é definida para a instância do objeto.





Anterior:20 minutos para emitir moeda virtual baseada na rede Ethereum
Próximo:Pensando nos cenários de uso e a importância dos terminais inteligentes
 Senhorio| Publicado em 30/06/2023 20:35:38 |
ASP.NET a diferença entre ThreadStatic, CallContext e HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com