[WEB]LOGIN 2 VEZES E SEGURAN?A ?!
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[Ô]);
}
}
}
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
Cookie eu não recomendo pra esse fim, acho que fica muito exposto...
Abraços!
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..
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.
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..