Um suplemento hospedado pelo provedor do SharePoint em execução no Azure para de funcionar após uma atualização do .NET
Este artigo é baseado em uma contribuição do Westley Hall, um engenheiro da equipe de suporte ao desenvolvedor do SharePoint.
Sintomas
Você descobre que um suplemento para de funcionar nas seguintes condições:
- Você tem um suplemento hospedado pelo provedor do SharePoint que está em execução nos serviços Web do Azure.
- O suplemento é hospedado em uma página do SharePoint que está dentro de uma parte do aplicativo (ou uma web part do cliente ou suplemento) ou um iframe.
Motivo
O problema provavelmente é causado por uma alteração na propriedade de cookie SameSite padrão.
Uma distribuição de atualização .NET Framework recente redefine o valor padrão da propriedade SameSite no cookie ASP.NET_SessionId para Lax. Essa alteração impede que o cookie seja enviado para um iframe se o domínio do iframe for diferente do domínio da página host. Em um suplemento de Web Part hospedado pelo provedor do SharePoint, o iframe sempre estará em um domínio diferente.
Por exemplo, o cookie de sessão se assemelha ao seguinte:
Set-Cookie: ASP.NET_SessionId=<xxxxxxxx>; path=/; HttpOnly; SameSite=Lax
Observação
Neste exemplo, <xxxxxxx é> um identificador aleatório da sessão.
Normalmente, essa sessão é usada no aplicativo ASP.NET para manter a autenticação. A página tenta redirecionar de volta para autenticar na segunda tentativa em vez de usar a sessão se houver uma postagem ou qualquer chamada do AJAX para o mesmo aplicativo.
Às vezes, o Serviço de Diretório gera um erro "405 Método Não Permitido". Isso ocorre porque as chamadas do AJAX podem disparar uma solicitação CORS OPTIONS e o SharePoint rejeitará essa solicitação.
Resolução
Para resolve esse problema, defina os padrões no arquivo web.config da seguinte maneira na seção system.web:
<system.web>
<httpCookies sameSite="None" requireSSL="true"/>
<sessionState cookieSameSite="None" />
Observação
Se SameSite estiver definido como Nenhum, o SharePoint não força o requisito para que o iframe e o host estejam no mesmo domínio.
Para atualizar o arquivo Web.config na instância ao vivo do aplicativo Web do Azure, siga estas etapas:
Navegue até as configurações do aplicativo Web no portal do Azure.
Selecione Ferramentas Avançadas e selecione Ir.
Na tela Kudu, selecione Depurar console e, em seguida, CMD.
Na tela Exibição de Arquivo , insira o comando site\wwwroot de CD (mostrado na caixa vermelha inferior na próxima captura de tela) para obter o diretório raiz do aplicativo Web. Em seguida, pressione Enter.
Observação
A lista de arquivos na parte superior da página é atualizada para mostrar o arquivoWeb.config (talvez você precise rolar para vê-lo). Para editar o arquivo, selecione o ícone de edição (o lápis, conforme mostrado na caixa vermelha na imagem abaixo).
Adicione as configurações de cookie httpCookies e sessionState que são realçadas na próxima captura de tela. Se a seção system.web estiver ausente, adicione-a para que ela se assemelhe ao exemplo mostrado na próxima captura de tela.
- Selecione Salvar.
- Verifique se suas web parts de suplemento estão funcionando conforme o esperado.
Para implantações futuras, recomendamos adicionar essa alteração a quaisquer projetos de código-fonte dos quais o aplicativo Web foi implantado.
Mais informações
Para obter mais informações sobre o .NET Framework atualização, consulte Serviço de Aplicativo do Azure— Tratamento de cookie SameSite e .NET Framework patch 4.7.2.
Ainda precisa de ajuda? Acesse a Comunidade do SharePoint.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de