Pergunta

Eu estou tentando converter um sistema de login home-grown para o controle de login asp.net padrão incluído no .net. Quero toda a comunicação no site para um usuário não logado para estar em texto claro, mas trava tudo em SSL uma vez o usuário fizer login -. Incluindo a transmissão do nome de usuário e senha

Eu tive esse trabalho antes de carregar uma segunda página - "loginaction.aspx" - com um https: prefixo, em seguida, retirar o nome de usuário e senha olhando para os controles caixa de texto adequados no Request.Form.Keys. Existe uma maneira de fazer algo semelhante usando os controles de login .net? Eu não quero ter uma página de login separado, mas sim incluir este controle (dentro de um loginview) em todas as páginas no site.

Foi útil?

Solução

Você não vai ser capaz de fazer o que você está falando simplesmente, porque a postagem (que é o que utiliza o controlo login) vai ser o que a segurança da página é (SSL ou não-SSL).

Sua melhor aposta neste cenário é usar um IFRAME que contém uma página HTTPS (SSL), que contém apenas thelogin controle. Você pode ter que redirecionar para outra página após o login que lhe permite saltar para fora do IFRAME.

Plano B seria ter um formulário separado na página (fora da sua principal forma), que tem o ponto de propriedade de ação para outra página onde você lida com o login. Você vai ter que rolar o seu próprio código de login para lidar com a autenticação de formulários.

Outras dicas

Eu era capaz de fazer isso adicionando um evento OnClientClick para o controle de botão de login e configurá-lo para a seguinte função javascript.
`

function forceSSLSubmit() 
{

                var strAction = document.forms[0].action.toString();

                if (strAction.toLowerCase().indexOf("http:") == 0) {
                    strAction = "https" + strAction.substring(4);

                    document.forms[0].action = strAction;
                }

        }

`

Você não vai ser capaz de ter o seu site como não-SSL, com uma caixa de login em cada página, e em seguida, enviar o nome de usuário e senha via SSL.

A única maneira de realmente alcançar este objetivo é usar quadros de algum tipo. Desta forma, sua página inteira poderia ser não-SSL, mas o quadro de login teria que ser SSL.

As formas usuais de se fazer isso, quer seja para bloqueio para baixo todo o site com SSL, não se preocupar em ter o SSL nome de usuário e senha criptografada e ir para SSL depois de log in, ou ir a rota quadro que mencionei acima.

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