Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   problema de seguridad c# (http://www.forosdelweb.com/f29/problema-seguridad-c-565685/)

pablokes 13/03/2008 08:20

problema de seguridad c#
 
tengo el siguiente problema que no eh podido solucionar



eh instalado sql server 2005 en pc servidor con windows server 2003

ya hasta ahi todo bien



eh copiado la carpeta donde tengo mi aplicacion en c# y desde el pc q ocupo le hice un acceso directo al .exe que se encuentra en bin y debug



en mi computador me ah funcionado de maravilla ^^! donde tengo instalado el visual studio 2005 y el sql server 2005



ahora bien el problema es el siguiente:

al hacer un acceso directo en otro pc q no sea el mio



1-. primero me salia un error y era porque no tenia instalado el framework 20. eso SOLUCIONADO



2-. me sale el siguiente error





LA FOTO : http://img186.imageshack.us/my.php?image=dddkl4.jpg







esto es lo me sale en detalles



See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.



************** Exception Text **************

System.Security.SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

at System.Security.CodeAccessSecurityEngine.Check(Obj ect demand, StackCrawlMark& stackMark, Boolean isPermSet)

at System.Security.PermissionSet.Demand()

at System.Data.Common.DbConnectionOptions.DemandPermi ssion()

at System.Data.SqlClient.SqlConnection.PermissionDema nd()

at System.Data.SqlClient.SqlConnectionFactory.Permiss ionDemand(DbConnection outerConnection)

at System.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

at System.Data.SqlClient.SqlConnection.Open()

at Sistema_Cuentas_Corrientes.Login.ConexionSql..ctor ()

at Sistema_Cuentas_Corrientes.Login.FrmLogin.btmEntra r_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.PerformClick()

at System.Windows.Forms.Form.ProcessDialogKey(Keys keyData)

at System.Windows.Forms.TextBoxBase.ProcessDialogKey( Keys keyData)

at System.Windows.Forms.Control.PreProcessMessage(Mes sage& msg)

at System.Windows.Forms.Control.PreProcessControlMess ageInternal(Control target, Message& msg)

at System.Windows.Forms.Application.ThreadContext.Pre TranslateMessage(MSG& msg)

The action that failed was:

Demand

The type of the first permission that failed was:

System.Data.SqlClient.SqlClientPermission

The Zone of the assembly that failed was:

Intranet





************** Loaded Assemblies **************

mscorlib

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

Sistema Cuentas Corrientes

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file://Proliant/SISTEMAS%20SQL/Sistema%20Cuentas%20Corrientes/bin/Debug/Sistema%20Cuentas%20Corrientes.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Drawing

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System.Data

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll

----------------------------------------

System.Configuration

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

System.Xml

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------



************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.



For example:



<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>



When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.















por lo que eh visto es algo de permisos de framework pero aun no entiendo :/ ojala me puedan ayudar plz desde ya muchas gracias ^^

Peterpay 13/03/2008 08:39

Re: problema de seguridad c#
 
Bueno , si es q no ocupas CAS (Code Access Security) en tu codigo lo mas probable es que estes autenticando a tu bd con Windows Authentication, revisa las diferencias entre permisos de tu usuario en ambiente de desarrollo y el de Produccion. y enlistalas aqui.

a menos de q en tu codigo tengas explicitamente declarado algo asi

[FileDialogPermission(SecurityAction.Assert)]
private void algunmetodo
{
...
}

son problemas de tus cuentas y tu autenticacion basada en windows.

saludos
peter

Peterpay 13/03/2008 08:55

Re: problema de seguridad c#
 
Aunq si estas creando solo un acceso directo ocurre esto

Cita:

Cuando llamas al acceso directo de un ejecutable que está en el servidor, lo que ocurre es
que el ejecutable se transmite por la red hasta el PC cliente y se carga en
la memoria del PC y lo ejecuta la CPU del PC. Cuando esto ocurre, el sistema
de seguridad de .Net le aplica los permisos de la "zona intranet", que le
limitan al ejecutable las operaciones que puede realizar sobre la máquina
local. Entre otras cosas, los permisos predeterminados para esa zona, no
permiten llamar a un servidor SQL y por eso te sale el error que te sale.
solo copia la aplicacion a tu server no un acceso directo.

pablokes 13/03/2008 12:13

Re: problema de seguridad c#
 
pero abra alguna forma de desabilitar esa seguridad?? de .net eh visto por ahi algo de framework para desabilitar esa seguridad

porque mi idea es llamar a un archivo .exe que lo tengo en el servidor principal y asi pasarlo a los demas pc's

pablokes 13/03/2008 12:16

Re: problema de seguridad c#
 
muchas gracias me funciono eso que me dijiste de copiar la carpeta entera, pero no es la idea q kiero ;/

Peterpay 13/03/2008 13:48

Re: problema de seguridad c#
 
pues entonces necesitas meter codigo de CAS, porq el framework lo asegura automaticamente cuando entra en un llamado remoto.

si no tendras que agregar este atributo a tus clases

[ZoneIdentityPermission( SecurityAction.Assert, Zone = SecurityZone.Intranet)]

pablokes 13/03/2008 13:50

Re: problema de seguridad c#
 
aps oki, pero en que parte del codigo va eso? :p

Peterpay 13/03/2008 13:51

Re: problema de seguridad c#
 
es un atributo para tu clase , justo antes de donde inician tus clases

pablokes 13/03/2008 14:03

Re: problema de seguridad c#
 
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Security.Cryptography;

namespace Sistema_Cuentas_Corrientes.Login
{

class ConexionSql
{
private SqlConnection cnn;
public ConexionSql()
{

this.cnn = new SqlConnection("Data Source=PROLIANT;Initial Catalog=Prueba;User ID=sa;Password=Proliantml350");
this.cnn.Open();
}
}

en q parte de ahi?? no te entiendo man ;P

Peterpay 13/03/2008 14:06

Re: problema de seguridad c#
 
namespace Sistema_Cuentas_Corrientes.Login
{
[ZoneIdentityPermission( SecurityAction.Assert, Zone = SecurityZone.Intranet)]
class ConexionSql
{
private SqlConnection cnn;
public ConexionSql()
{

this.cnn = new SqlConnection("Data Source=PROLIANT;Initial Catalog=Prueba;User ID=sa;Password=Proliantml350");
this.cnn.Open();
}
}

como una critica constructiva, trata de leer los libros de nociones de .net y alguno de seguridad con el framework.

pablokes 13/03/2008 14:17

Re: problema de seguridad c#
 
using System.Security.Permissions;

[ZoneIdentityPermission(SecurityAction.Assert, Zone = SecurityZone.Intranet)]
me dice que no encuentra la variable SecurityZone

Peterpay 13/03/2008 14:22

Re: problema de seguridad c#
 
te fatan los namespaces

using System.Security;
using System.Security.Permissions;

pablokes 13/03/2008 14:28

Re: problema de seguridad c#
 
yap eso lo pongo en todas las clases incluso los forms?

Peterpay 13/03/2008 14:31

Re: problema de seguridad c#
 
prueba primero en la de la conexion , y ve si te es suficiente

pablokes 13/03/2008 14:46

Re: problema de seguridad c#
 
lo probe y too y no me sigue saliendo = ;(, esa seria la unica solucion? que eh buscado en internet sin encontrar nada >.<

Peterpay 13/03/2008 14:47

Re: problema de seguridad c#
 
Cambia el assert por Demand en el atributo q agregaste

y pruebalo otra vez.

pablokes 14/03/2008 06:14

Re: problema de seguridad c#
 
no pasa nada =( en framework tengo q configurar algo o no?

pablokes 14/03/2008 06:49

Re: problema de seguridad c#
 
es q lo necesito asi porque si despues cambio el codigo de mi aplicacion tendria q instalarlo de nuevo en cada equipo de la red, en cambio si lo modifico del servidor se cambia para todos nomas :D

pablokes 14/03/2008 07:52

Re: problema de seguridad c#
 
ya encontre la solucion :D!! pero tengo otro problema = xD!

para poder ejecutar mi aplicacion en los demas pc tengo que dar los permisos en cada framework de cada pc ^^!


pero el problema que tengo es que en los demas pc tengo instalado el framework pero no me aparece en panel de control -> herramientas administrativas, y ahi poder meterme al panel de control del framework y dar los permisos :( no me aparece la configuracion, me faltara bajar un pakete entero de framework?? 2.0

pablokes 14/03/2008 09:22

Re: problema de seguridad c#
 
Tema solucionado a traves de DOS obtener la carpeta de framework y Caspol -ag 1 -zone Intranet FullTrust poner eso ^^!

Peterpay 14/03/2008 10:45

Re: problema de seguridad c#
 
q bueno q lo solucionaste.

pablokes 14/03/2008 11:17

Re: problema de seguridad c#
 
gracias por todo man sin tu ayuda no hubiera llegado a la solución :)

fw20arg 05/04/2011 09:44

Respuesta: Re: problema de seguridad c#
 
Cita:

Iniciado por pablokes (Mensaje 2322957)
ya encontre la solucion :D!! pero tengo otro problema = xD!

para poder ejecutar mi aplicacion en los demas pc tengo que dar los permisos en cada framework de cada pc ^^!


pero el problema que tengo es que en los demas pc tengo instalado el framework pero no me aparece en panel de control -> herramientas administrativas, y ahi poder meterme al panel de control del framework y dar los permisos :( no me aparece la configuracion, me faltara bajar un pakete entero de framework?? 2.0

Me gustaría saber cómo lo solucionaste finalmente ya que tenemos el mismo problema. Gracias!

Aquaventus 05/04/2011 09:49

Respuesta: problema de seguridad c#
 
Hola fw20arg es dificil que te responda el usuario ya que este post es de hace 3 años, y el usuario no se conecta desde hace medio año. Puedes crear un nuevo post y hacer tus preguntas. Saludos!


La zona horaria es GMT -6. Ahora son las 03:32.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.