[WEB]LOGIN 2 VEZES E SEGURAN?A ?!

MESTRE 15/02/2017 17:54:53
#471666
Fala galera beleza? tenho um site simples em webforms mesmo coisa bem simples, porém precisa logar 2 vezes, loga 1 vez e ele não vai ai na segunda logada ele loga e vai pra pagina Home, e não sei o motivo voces podem ver criei um login de demo.. e referente a segurança dos dados quais as preocupações devo ter referente a segurança? (encryptar web.config essas coisas)...

Link: www.iesoft.com.br
login: demo
senha: demo


Código da minha página:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using MySql.Data.MySqlClient;
using System.Configuration;

namespace LabSphereWeb
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{




}

protected void Button1_Click(object sender,EventArgs e){

String nome_usu = Request.Form[[Ô]nomeUsu[Ô]];
String senha_usu = Request.Form[[Ô]senhaUsu[Ô]];


try
{

string conString = ConfigurationManager.ConnectionStrings[[Ô]MySqlServer[Ô]].ConnectionString;

MySqlConnection conection = new MySqlConnection(conString);
MySqlDataReader reader = null;

string query = [Ô]SELECT Nome_Usuario,Senha_Usuario FROM labdados.usuario WHERE Nome_Usuario = @n_usu AND Senha_Usuario = @n_pword[Ô];

MySqlCommand cmd = new MySqlCommand(query, conection);


cmd.Connection.Open();
cmd.Prepare();


cmd.Parameters.AddWithValue([Ô]@n_usu[Ô], nome_usu);
cmd.Parameters.AddWithValue([Ô]@n_pword[Ô], senha_usu);

reader = cmd.ExecuteReader();


if ((reader.Read() == true))
{

FormsAuthentication.RedirectFromLoginPage([Ô]NomeUsuario[Ô], true);

}
else
{

if (nome_usu == null || nome_usu == [Ô][Ô] && senha_usu == null || senha_usu == [Ô][Ô]) {
Page.ClientScript.RegisterStartupScript(this.GetType(), [Ô]toastr_message[Ô], [Ô]toastr.error([ô]Digite nome ou senha válidos![ô], [ô]Campos Requeridos![ô])[Ô], true);

}

Page.ClientScript.RegisterStartupScript(this.GetType(),[Ô]toastr_message[Ô], [Ô]toastr.error([ô]Nome de usuário ou senha incorretos![ô], [ô]Falha de Autenticação![ô])[Ô], true);

}

reader.Close();
cmd.Connection.Close();


}
catch (Exception ex)
{

Response.Write([Ô]Falha em logar. Tente novamente mais tarde ou entre em contato com o Departamento de TI![Ô]);
}


}

protected void LogoutButton_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect([Ô]~/index.aspx[Ô]);
}

}
}
KERPLUNK 15/02/2017 20:48:49
#471681
Resposta escolhida
Você chegou a ver o que o método RedirectFromLoginPage faz?
MESTRE 16/02/2017 07:30:08
#471691
Citação:

:
Você chegou a ver o que o método RedirectFromLoginPage faz?


Entendi, Na verdade então o RedirectFromLoginPage está retornando a minha index.aspx novamente correto?
Como contornar a situação?
pra fazer autenticação fiz com base nesse Artigo
..

Na verdade gostaria de saber qual a forma melhor de fazer Login/Autenticação de usuário:
- Via Session
- Via Cookie
- Via FormsAuthenticate
DS2T 16/02/2017 12:26:41
#471699
Então cara, eu geralmente uso Session. Dizem que o FormsAuthenticate tem uma vantagem legal no quesito segurança, quando comparado com a Session.
Cookie eu não recomendo pra esse fim, acho que fica muito exposto...

Abraços!
MESTRE 16/02/2017 13:09:53
#471702
Citação:

:
Então cara, eu geralmente uso Session. Dizem que o FormsAuthenticate tem uma vantagem legal no quesito segurança, quando comparado com a Session.
Cookie eu não recomendo pra esse fim, acho que fica muito exposto...

Abraços!


Então to usando Session agora más apenas pra recuperar os dados do nome do usuario e id dele ai depois utilizo o Redirect do FormsAuthenticate
para dar permissão.. Só tem um problema é necessário fazer login 2 vezes e não sei como resolver isso..
GUIMORAES 16/02/2017 13:57:31
#471706
MESTRE

Acredito que o DS2T quis dizer é que se você não utilizar o forms authentication, você pode controlar isto pela session.
O forms authentication cria uma [Ô]rota[Ô] no web.config, assim ao você acessar qualquer página, o mesmo irá verificar se a autenticação já foi feita, se não, ele redireciona para página de login que você pode definir.

De fato, é mais seguro utilizar o forms authentication, mas isto não te impede de fazer uma configuração para direcionar a sua página de login para outra página de login, e dentro desta segunda página, fazer outra verificação que você precisa. é claro, você precisa armazenar os dados da outra página em algum lugar, como na session por exemplo.
MESTRE 16/02/2017 14:45:34
#471712
Citação:

:
MESTRE

Acredito que o DS2T quis dizer é que se você não utilizar o forms authentication, você pode controlar isto pela session.
O forms authentication cria uma [Ô]rota[Ô] no web.config, assim ao você acessar qualquer página, o mesmo irá verificar se a autenticação já foi feita, se não, ele redireciona para página de login que você pode definir.

De fato, é mais seguro utilizar o forms authentication, mas isto não te impede de fazer uma configuração para direcionar a sua página de login para outra página de login, e dentro desta segunda página, fazer outra verificação que você precisa. é claro, você precisa armazenar os dados da outra página em algum lugar, como na session por exemplo.


Entendi, queria utilizar session com formauthentication pra não ter q ficar toda page load ficar fazendo Redirect se a session for nula mandar pra pagina de login e tbm utilizar controle dos grupos de acesso do formauthentication no web.config..


Tópico encerrado , respostas não são mais permitidas