Pergunta

Estou tentando criar uma página de logon personalizada para o SharePoint 2013. Eu tenho um projeto de 2010 existente que funciona bem que estou usando como modelo para uma versão 2013, mas não consigo fazer isso funcionar. < / p >.

O que trabalhou está fazendo minha própria página vazia que é baseada em multilogonpage, mas estou tentando fazer uma página de login mesclada (formulário, redirecionamento de janelas, etc.). E parece que herdar da página existente tem muitas restrições. Em particular, qualquer tipo de grande codebehind leva a:

.

A operação não é válida devido ao estado atual do objeto. Descrição: Uma exceção não tratada ocorreu durante a execução de O pedido da Web atual. Por favor, revise o traço de pilha para mais informações sobre o erro e onde se originou no código.

Detalhes da exceção: System.InvalidoperationException: Operação não é válido devido ao estado atual do objeto.

erro de origem:

Uma exceção não tratada foi gerada durante a execução do Solicitação atual da Web. Informações sobre a origem e localização de A exceção pode ser identificada usando o rastreamento de pilha de exceção abaixo.

traço de pilha:

[InvalidOperationException: Operação não é válido devido à corrente estado do objeto.]
Microsoft.SharePoint.identitymodel.pages.multilogonpage.onload (Eventargs. e) +1118 System.Web.UI.Control.LoadRecursive () +95 System.Web.UI.Page.ProcessRequestmain (Boolean. includeStagesBeforeAsyncpoint, Boolean IncluiStagesAdterasyncPoint) +2936

Não é um problema web.config, porque está definido para permitir que todos os usuários na página de login.

Eu estou claramente perdendo algo na configuração básica, mas não sei o que.

Certamente parece de lugares como http://davidlozzi.com/2011/07/15/Sharepoint-2010-Create-Unique-login-page-With-Forms-Based-Authentication/ Isso é bastante simples .. .

Tudo está na zona padrão agora, então não é nada ao redor disso. A página de login é definida corretamente para o aplicativo da Web porque o redirecionamento para a página de login está acontecendo.

Foi útil?

Solução

I basically gave up and threw away what I had, starting over with http://davidlozzi.com/2011/07/15/sharepoint-2010-create-unique-login-page-with-forms-based-authentication/. The key I think is inheriting from the Forms sign-in page, but that's still squirrelly. I'd rather know exactly what that class is doing that lets it work but I don't have time to dig into it and replicate it.

Outras dicas

That error seems to occur when you attempt to use a CodeFile (aspx.cs) with a Page that inherits from Microsoft.SharePoint.IdentityModel.Pages.MultiLogonPage.

The error doesn't come up when you use compiled code or use CodeBehind and place the aspx.cs page in the App_Code directory.

You can also get rid of the error by removing base.Onload() from your overrided OnLoad method.

 protected override void OnLoad(EventArgs e)
    {
        //base.OnLoad(e);
    }

If you do this, the page title and text in front of the drop down list asking you to select an authentication method does not show up.

However, the drop down list is still added to the page and is still functional.

The MultiLogonPage is meant for allowing the user to select from a drop down list of login types and forward the user to the appropriate login type based off the postback from the drop down list.

Not quite sure why the error only occurs when trying to use a CodeFile, but there are ways to get it working, as I mentioned.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top