Depurador y CurrentPrincipal

16/01/2006 - 19:31 por AOG | Informe spam
hola, tengo un par de dudas

1º duda:
tego una solucion en VB 2005 final, pero esta duda da igual en que lenguaje
sea ya que pienso que tambien sucede en C#, porque creo que es por VS, dicha
solución está formado por 4 proyecto 1º es la capa de IU (Interfaz de
Usuario), 2º un SW (Servico Web), 3º es la capa de negoacio y 4º Acceso a
datos.
la solucion está en modo Debug, y pregunto por qué, y son muy poca veces, me
funciona ir depurando (interpretando)las líneas de código pasa por paso (F8)
empezando por el proyecto IU y me pasa al proyecto SW y sigue interpretando
linea por linea para ver el
conportamiento en la capa de negocio, y en la mayoria de veces
no me deja depurar, es decir se queda en el proyecto IU y no sigue
interpretando las
lineas de los demas proyectos, continuando en la siguiente linea del
poryecto IU, una vez
terminado la llamada al método del servico Web, vamos que no interpreta
paso a paso por lo demás proyecto. ¿Tengo algo mal configurado en mi VS?

2º duda
Otra cuestion es si desde la capa IU se hace una llamada un metodo del SW
el Thread.CurrentPrincipal es el mimo o conserva los mismos valores en todas
las llamadas,
hasque que se cambie en ese hilo de ejecusion. Lo digo por la seguridad ya
que tengo hecho
que en cada llamada de un metodo del SW la primera línea es recoger el
usuario y contraseña
de la cabecera SOAP y llamar a una funcion que si ha cambiado el
Thread.CurrentPrincipal.Identity.Name vuelvo
a buscar el usuario en la base de datos y comparar el que se pasa por la
cabecera
y permitirá o denegará continuar ejecutando el metodo si el usuario es
válido, si es
valido asigno el usuairo de la cabecera SAOP al
Thread.CurrentPrincipal.Identity
y en el caso que Thread.CurrentPrincipal.Identity.Name
es igual a la de la cabecera no busco en la BBDD y me ahorro acceder a la
BBDD.

Public Function ValidarUsuario(UsuarioActivo_CabSOAP,ClaveActivo_CabSOAP) as
Booleand
if Thread.CurrentPrincipal.Identity.Name <> UsuarioActivo_CabSOAP Then
dsUsu = BuscarUsuarioEnBBDD(UsuarioActivo_CabSOAP)
if dsUsu.Rows(0).Codigo = UsuarioActivo_CabSOAP and dsUsu.Rows(0).Clave =
ClaveActivo_CabSOAP then
AsignarNuevoUsuairoCurrentPrincipal(UsuarioActivo_CabSOAP)
return = true
else
return = false
end if
Else
return true
End if
End Function
¡Claro!, esto me sirve si conserva Thread.CurrentPrincipal.Identity.Name en
todas las llamadas
, en el caso que no, siempre estaría buscando en la BBDD, lo cual el
rendimiento será peor.
Si se accede directamente desde la IU a la capa de negocio si es el mismo
Hilo, pero cuando
hay un SW por medio, ignoro el comportamiento.

Lo que se trata de guardar el usuario activo en el SW para compara con el
que se pasa en
la cabecera SOAP cuando se llama a un metodo del dicho SW.
Si alguien me puede aportar una sugerencia mejor sobre este tema de
seguridad, se lo agradecería mucho.

Por favor, me gustaria que me despejarais estas dos dudas, un saludo.

Preguntas similare

Leer las respuestas

#1 Marckys
18/01/2006 - 08:48 | Informe spam
Hola AOG,

Sobre el tema de depuración...
Cuando enlazas un proyecto con otro haces una referencia de la DLL del
proyecto.

Pero te tienes que asegurar que también tienes el archivo .pdb que es el que
te permite debugar la DLL.

Y para poder debugar un servicio web, si no me equivoco se tiene que
attachar el proceso del servidor que ejecuta el servicio web.

Debug --> Processes

Saludos.

Marckys --> Power by C#
MCP - MCAD.NET


"AOG" escribió:

hola, tengo un par de dudas

1º duda:
tego una solucion en VB 2005 final, pero esta duda da igual en que lenguaje
sea ya que pienso que tambien sucede en C#, porque creo que es por VS, dicha
solución está formado por 4 proyecto 1º es la capa de IU (Interfaz de
Usuario), 2º un SW (Servico Web), 3º es la capa de negoacio y 4º Acceso a
datos.
la solucion está en modo Debug, y pregunto por qué, y son muy poca veces, me
funciona ir depurando (interpretando)las líneas de código pasa por paso (F8)
empezando por el proyecto IU y me pasa al proyecto SW y sigue interpretando
linea por linea para ver el
conportamiento en la capa de negocio, y en la mayoria de veces
no me deja depurar, es decir se queda en el proyecto IU y no sigue
interpretando las
lineas de los demas proyectos, continuando en la siguiente linea del
poryecto IU, una vez
terminado la llamada al método del servico Web, vamos que no interpreta
paso a paso por lo demás proyecto. ¿Tengo algo mal configurado en mi VS?

2º duda
Otra cuestion es si desde la capa IU se hace una llamada un metodo del SW
el Thread.CurrentPrincipal es el mimo o conserva los mismos valores en todas
las llamadas,
hasque que se cambie en ese hilo de ejecusion. Lo digo por la seguridad ya
que tengo hecho
que en cada llamada de un metodo del SW la primera línea es recoger el
usuario y contraseña
de la cabecera SOAP y llamar a una funcion que si ha cambiado el
Thread.CurrentPrincipal.Identity.Name vuelvo
a buscar el usuario en la base de datos y comparar el que se pasa por la
cabecera
y permitirá o denegará continuar ejecutando el metodo si el usuario es
válido, si es
valido asigno el usuairo de la cabecera SAOP al
Thread.CurrentPrincipal.Identity
y en el caso que Thread.CurrentPrincipal.Identity.Name
es igual a la de la cabecera no busco en la BBDD y me ahorro acceder a la
BBDD.

Public Function ValidarUsuario(UsuarioActivo_CabSOAP,ClaveActivo_CabSOAP) as
Booleand
if Thread.CurrentPrincipal.Identity.Name <> UsuarioActivo_CabSOAP Then
dsUsu = BuscarUsuarioEnBBDD(UsuarioActivo_CabSOAP)
if dsUsu.Rows(0).Codigo = UsuarioActivo_CabSOAP and dsUsu.Rows(0).Clave =
ClaveActivo_CabSOAP then
AsignarNuevoUsuairoCurrentPrincipal(UsuarioActivo_CabSOAP)
return = true
else
return = false
end if
Else
return true
End if
End Function
¡Claro!, esto me sirve si conserva Thread.CurrentPrincipal.Identity.Name en
todas las llamadas
, en el caso que no, siempre estaría buscando en la BBDD, lo cual el
rendimiento será peor.
Si se accede directamente desde la IU a la capa de negocio si es el mismo
Hilo, pero cuando
hay un SW por medio, ignoro el comportamiento.

Lo que se trata de guardar el usuario activo en el SW para compara con el
que se pasa en
la cabecera SOAP cuando se llama a un metodo del dicho SW.
Si alguien me puede aportar una sugerencia mejor sobre este tema de
seguridad, se lo agradecería mucho.

Por favor, me gustaria que me despejarais estas dos dudas, un saludo.
Respuesta Responder a este mensaje
#2 AOG
18/01/2006 - 20:05 | Informe spam
Ok gracias marckys, me funciona

"Marckys" escribió:

Hola AOG,

Sobre el tema de depuración...
Cuando enlazas un proyecto con otro haces una referencia de la DLL del
proyecto.

Pero te tienes que asegurar que también tienes el archivo .pdb que es el que
te permite debugar la DLL.

Y para poder debugar un servicio web, si no me equivoco se tiene que
attachar el proceso del servidor que ejecuta el servicio web.

Debug --> Processes

Saludos.

Marckys --> Power by C#
MCP - MCAD.NET


"AOG" escribió:

> hola, tengo un par de dudas
>
> 1º duda:
> tego una solucion en VB 2005 final, pero esta duda da igual en que lenguaje
> sea ya que pienso que tambien sucede en C#, porque creo que es por VS, dicha
> solución está formado por 4 proyecto 1º es la capa de IU (Interfaz de
> Usuario), 2º un SW (Servico Web), 3º es la capa de negoacio y 4º Acceso a
> datos.
> la solucion está en modo Debug, y pregunto por qué, y son muy poca veces, me
> funciona ir depurando (interpretando)las líneas de código pasa por paso (F8)
> empezando por el proyecto IU y me pasa al proyecto SW y sigue interpretando
> linea por linea para ver el
> conportamiento en la capa de negocio, y en la mayoria de veces
> no me deja depurar, es decir se queda en el proyecto IU y no sigue
> interpretando las
> lineas de los demas proyectos, continuando en la siguiente linea del
> poryecto IU, una vez
> terminado la llamada al método del servico Web, vamos que no interpreta
> paso a paso por lo demás proyecto. ¿Tengo algo mal configurado en mi VS?
>
> 2º duda
> Otra cuestion es si desde la capa IU se hace una llamada un metodo del SW
> el Thread.CurrentPrincipal es el mimo o conserva los mismos valores en todas
> las llamadas,
> hasque que se cambie en ese hilo de ejecusion. Lo digo por la seguridad ya
> que tengo hecho
> que en cada llamada de un metodo del SW la primera línea es recoger el
> usuario y contraseña
> de la cabecera SOAP y llamar a una funcion que si ha cambiado el
> Thread.CurrentPrincipal.Identity.Name vuelvo
> a buscar el usuario en la base de datos y comparar el que se pasa por la
> cabecera
> y permitirá o denegará continuar ejecutando el metodo si el usuario es
> válido, si es
> valido asigno el usuairo de la cabecera SAOP al
> Thread.CurrentPrincipal.Identity
> y en el caso que Thread.CurrentPrincipal.Identity.Name
> es igual a la de la cabecera no busco en la BBDD y me ahorro acceder a la
> BBDD.
>
> Public Function ValidarUsuario(UsuarioActivo_CabSOAP,ClaveActivo_CabSOAP) as
> Booleand
> if Thread.CurrentPrincipal.Identity.Name <> UsuarioActivo_CabSOAP Then
> dsUsu = BuscarUsuarioEnBBDD(UsuarioActivo_CabSOAP)
> if dsUsu.Rows(0).Codigo = UsuarioActivo_CabSOAP and dsUsu.Rows(0).Clave =
> ClaveActivo_CabSOAP then
> AsignarNuevoUsuairoCurrentPrincipal(UsuarioActivo_CabSOAP)
> return = true
> else
> return = false
> end if
> Else
> return true
> End if
> End Function
> ¡Claro!, esto me sirve si conserva Thread.CurrentPrincipal.Identity.Name en
> todas las llamadas
> , en el caso que no, siempre estaría buscando en la BBDD, lo cual el
> rendimiento será peor.
> Si se accede directamente desde la IU a la capa de negocio si es el mismo
> Hilo, pero cuando
> hay un SW por medio, ignoro el comportamiento.
>
> Lo que se trata de guardar el usuario activo en el SW para compara con el
> que se pasa en
> la cabecera SOAP cuando se llama a un metodo del dicho SW.
> Si alguien me puede aportar una sugerencia mejor sobre este tema de
> seguridad, se lo agradecería mucho.
>
> Por favor, me gustaria que me despejarais estas dos dudas, un saludo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida