Partilhar via


SessionStateStoreProviderBase.CreateUninitializedItem Método

Definição

Adiciona um novo item de estado de sessão para o armazenamento de dados.

public:
 abstract void CreateUninitializedItem(System::Web::HttpContext ^ context, System::String ^ id, int timeout);
public abstract void CreateUninitializedItem (System.Web.HttpContext context, string id, int timeout);
abstract member CreateUninitializedItem : System.Web.HttpContext * string * int -> unit
Public MustOverride Sub CreateUninitializedItem (context As HttpContext, id As String, timeout As Integer)

Parâmetros

context
HttpContext

O HttpContext para a solicitação atual.

id
String

O SessionID para a solicitação atual.

timeout
Int32

A sessão Timeout para a solicitação atual.

Exemplos

Para obter um exemplo de implementação de um provedor de repositório de estado de sessão, consulte Implementando um provedor de repositório de Session-State.

Comentários

O CreateUninitializedItem método é usado com sessões quando os cookieless atributos e regenerateExpiredSessionId são ambos true. Ter o regenerateExpiredSessionId attribute definido como true faz com que o SessionStateModule objeto gere um novo SessionID valor quando um valor expirado SessionID é encontrado.

O processo de geração de um novo SessionID valor requer o redirecionamento do navegador para uma URL que contém o valor recém-gerado SessionID . O CreateUninitializedItem método é chamado durante a solicitação inicial que contém um valor expirado SessionID . Depois que o SessionStateModule objeto adquire um novo SessionID valor para substituir o valor expirado, ele chama o CreateUninitializedItem método para adicionar uma entrada não inicializada ao armazenamento de dados de estado de sessão. Em seguida, o navegador é redirecionado para a URL que contém o valor recém-gerado SessionID . A existência da entrada não inicializada no armazenamento de dados de sessão garante que a solicitação redirecionada que inclui o valor recém-gerado não seja confundida SessionID com uma solicitação para uma sessão expirada e, em vez disso, seja tratada como uma nova sessão.

A entrada não inicializada no armazenamento de dados de sessão está associada ao valor recém-gerado SessionID e contém apenas valores padrão, incluindo uma data e hora de expiração e um valor que corresponde ao actionFlags parâmetro dos GetItem métodos e GetItemExclusive . A entrada não inicializada no repositório de estado de sessão deve incluir um actionFlags valor igual ao valor de InitializeItem enumeração. Esse valor é passado para o SessionStateModule objeto pelos GetItem métodos e GetItemExclusive e informa ao SessionStateModule objeto que a sessão atual é uma sessão nova, mas não inicializada. Em SessionStateModule seguida, o objeto inicializará a nova sessão e gerará o Session_OnStart evento.

Para obter mais informações sobre sessões sem cookie, consulte a IsCookieless propriedade .

Aplica-se a

Confira também