Cita:
Iniciado por ramirezmario7 No sera que estas guardando tu usuario en una variable de aplicacion.
Muestra algo de codigo para poder ayudarte mejor
engo el siguiente problema, tengo mi diseño web en asp.net con vb, en el cual tengo dos niveles de usuarios (administradores y usuarios), el control de usuarios los hago por medio de variables las cuales las tengo en la carpeta App_Code en la hoja variables.vb
Public Class Variables
Public Shared v_userId as Integer
Public Shared v_ userNivel As Integer
End Class
Y estas las utilizo en mi hoja de entrada ( login.aspx)
Checa en una tabla de sql y según la variable v_userId toma el usuario con ese id
Y según la variable v_ userNivel entra a páginas de usuarios o administradores,
Localmente trabaja perfectamente, pero hoy que lo puse en el servidor de operación e hicimos pruebas con 7 usuarios
De repente me salvaba datos como si los hubiera capturado otro usuario, es decir entro con el usuario XXX, y al grabar un dato lo hacia como si lo hubiera capturado el usuario yyy,
De repente entraba como administrador y quería editar algún registro y no me mandaba error pero no grababa los cambios...
No se si hay que liberar la base de datos, en las aplicaciones para Windows hay forma de hacerlo, pero en aspNet no tengo idea...
Responder Citando
Aqui la pagina Login.aspx
Imports System.Data
Imports System.Data.SqlClient
Imports System.Security.Cryptography
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginButton.Click
Dim url As String = "~/Login.aspx"
If Page.IsValid Then
If Membership.ValidateUser(txtCorreo.Text, txtPassword.Text) Then
FormsAuthentication.RedirectFromLoginPage(txtCorre o.Text, rememberme.Checked)
Else
End If
End If
Using cnn As New SqlConnection(Me.SqlDataSource1.ConnectionString)
Dim sel As String = Me.SqlDataSource1.SelectCommand & " WHERE Correo = @p_correo"
Dim cmd As New SqlCommand(sel, cnn)
cnn.Open()
cmd.Parameters.AddWithValue("@p_correo", txtCorreo.Text)
Dim tabla As New DataTable
Dim da As New SqlDataAdapter(cmd)
da.Fill(tabla)
If tabla.Rows.Count = 0 Then
Me.lblAviso.Text = "No registrado, contacte al Supervisor"
Exit Sub
End If
Dim clave As String = FormsAuthentication.HashPasswordForStoringInConfig File(txtPassword.Text, "SHA1")
If clave <> tabla.Rows(0)("Clave") Then
Me.lblAviso.Text = "Verifique la Clave"
Exit Sub
End If
Variables.v_userID = tabla.Rows(0)("IdAe")
Variables.v_GerenteId = tabla.Rows(0)("IdGerente")
Variables.v_ClusterId = tabla.Rows(0)("IdCluster")
Variables.v_usernivel = tabla.Rows(0)("Nivel")
Session("autorizado") = 1
Session("nomusuario") = tabla.Rows(0)("Nombre")
Me.lblAviso.Text = "Registered User and password validated."
If tabla.Rows(0)("Nivel") = 0 Then url = "Super/Inicio.aspx"
If tabla.Rows(0)("Nivel") = 1 Then url = "Admin/Inicio.aspx"
If tabla.Rows(0)("Nivel") = 2 Then url = "User/inicio.aspx?p_uid= & Variables.v_userID & p_gid = Variables.v_GerenteId & p_cid= variables.v_ClusterId "
End Using
Response.Redirect(url)
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
End Class