Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - .mokk.

#161
Cita de: MANULOMM en  8 Noviembre 2010, 20:57 PM
OK, para el caso esta bien.

Pero te presento el mundo de los servicios web, publicar la BD es una mala practica, seria muy sensible a un ataque, un servicio web puede viajar por el puerto 80 ( el mas comun) y utilizar SSL para encripcion, la conexión con la BD es mas vulnerable.


Atentamente,

Juan Manuel Lombana

Microsoft Certified Professional
Microsoft Student Partner
Medellín - Colombia

Eso si es verdad, por lo mismo en esta clase de proyectos hay que tener cuidado, desde saber quienes lo tendran y que ellos no se lo pasen a terceros, tambien hacer un login de tipo HWID para hacerlo mejor, y claro proteger nuestra aplicacion para que no pueda ser leida facilmente ya sea con .NET Reflector o algun otro.

Yo solo uso esta forma ya que donde esta hosteada la DB, no es mi PC y crear una web en ella para manejar la DB se me hace mas tedioso que crear una aplicacion de escritorio hehe , proximamente vere eso para hacer alguna en silverlight(si esque se puede).
#162
hehehe si tmb se puede con ODBC o he visto pero yo siempre lo hago con SQL ahi hehe
si te fijas en el source anterior que puse el codigo de conexion es

"data source = 127.0.0.1; initial catalog = GunzDB; user id = sa; password = zombie000"


Con esa es la que yo uso pra conectarme a Base de Datos remotas en MSSQL solo claro en ves de esos datos pongo la IP del servidor un ejemplo a servidor remoto seria


"data source = crymore.sytes.net; initial catalog = GunzDB; user id = sa; password = zombie000"


Con esa podras entrar a mi Base de Datos
crymore.sytes.net es mi NO-IP para hacer redireccion a mi hehe, aunque GunZDB es una Base de Datos que uso para un juego y por ahora esta vacia hehe ahi puedes intentar entrar en ella para que veas (:
#163
Pues si deberia funcionar, solo recuerda tambien que a la Base de Datos a la cual accederemos si es en MSSQL tiene que tener permitido el acceso remoto, y asignarle un userid y contraseña para la seguridad, la conexion que tu usas ahi es mayormente usado para locales.

y en la Funcion Abrir no estoy seguro porque no colocar el
cadenaconexion.Open()

Por lo demas lo vi bien
#164
Para copiar un archivo desde resource basta con hacerlo con FileWriteAllBytes
Código (vb.net) [Seleccionar]

'zlib0 es mi recurso
            Dim zlib As Byte() = My.Resources.zlib0
'mrs.exe es como queremos que se guarde en la misma carpeta donde estamos
            File.WriteAllBytes("mrs.exe", zlib)
#165
Bueno yo lo haria algo asi, si esque quieres copiar todos los archivos que se encuentran en tu carpeta de la aplicacion y ademas de sus subcarpetas seria algo asi

Código (vb.net) [Seleccionar]

Imports System.IO

Public Class Form1

    Private Sub listararchivos()
        Dim copiar as String
        copiar = "C:\Archivos\"

        For Each Archivo As String In My.Computer.FileSystem.GetFiles( _
Application.StartupPath, _
FileIO.SearchOption.SearchAllSubDirectories)

            Dim a, b As String
            a = Archivo
            b = My.Computer.FileSystem.GetName(Archivo)
            'Mostramos en un label el nombre del archivo a copiar
            Label1.Text = b
            'Copiar archivo a una ruta que especamos anteriormente
            File.Copy(a,copiar + b)

        Next
        Label2.Text = "Lista Actualizada! - " & Date.Now.ToString
    End Sub

End class
#166
Yo la verdad te aconsejaria mejor hacerlo en MySQL o MSSQL, si ya pasaras a hacerlo por internet, ya que como dijo .::IT::.  , sera mucho mas tardado y ademas quien quiere estarse matando por hacer una conexion a archivos remotos si para ello tenemos la facilidad de MySQL y/o MSSQL.

Ademas es casi lo mismo la conexion o am el codigo de conexion
Ejemplo Conectar a MSSQL
Código (vb.net) [Seleccionar]

imports system.data.sqlclient
module Conexion0
dim con as sqlconnection
dim ad as new sqldataadapter
dim dt as datatable
dim comando as string
Public conexion As String = "data source = 127.0.0.1; initial catalog = GunzDB; user id = sa; password = zombie000"

'datasource = servidor , initial catalog=BaseDeDatos , userid= usuario , password = contraseña

public sub conectar
con = new sqlconnection()
con.connectionstring(conexion)

try
con.open()
msgbox("Conexion Exitosa (:")
con.close()
catch
msgbox("Error en la conexion")
end try

end sub

'Ejemplo de una query
public sub query
dt = new datatable
'Query para obtener todos los datos de la tabla Cuentas para al final mostrarla en un Datagridview
comando = "SELECT * FROM Cuentas"
ad = new sqldataadapter(comando,conexion)
ad.fill(dt)
Form1.datagridview1.datasource = dt

end sub

end module

try
#167
.NET (C#, VB.NET, ASP) / Re: Error con notifyIcon c#
11 Septiembre 2010, 03:26 AM
Intenta asi
Código (vb.net) [Seleccionar]
   Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
       If Me.WindowState = FormWindowState.Minimized Then
           Me.Visible = False
           NotifyIcon1.Visible = True
       End If
   End Sub

   Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
       Me.Visible = True
       Me.WindowState = FormWindowState.Normal
       Me.Show()
       NotifyIcon1.Visible = False
   End Sub


Ami me funciono

Fallos
visible = true - jamas lo pusistes
Me.WindowState = FormWindowState.Normal - se pone antes del show asi antes de mostrarse ya estara normal si lo pones despues se mostrara y vera que sigue minimizado y dara otra vez y nose mostrara nunca
#168
Programación General / Re: mail
2 Septiembre 2010, 04:02 AM
Código (csharp) [Seleccionar]
using System;
using System.Collections;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;

public class EjemploCorreoGMail
{
    public static void Main()
    {
            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            msg.To.Add("destinatario@dominio.com");
            msg.From = new MailAddress("micuenta@gmail.com", "Tu Nombre", System.Text.Encoding.UTF8);
            msg.Subject = "Prueba de correo a GMail";
            msg.SubjectEncoding = System.Text.Encoding.UTF8;
            msg.Body = "Cuerpo del mensaje";
            msg.BodyEncoding = System.Text.Encoding.UTF8;
            msg.IsBodyHtml = false;

            //Aquí es donde se hace lo especial
            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential("micuenta@gmail.com", "miclave");
            client.Port = 587;
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail
            try
            {
                        client.Send(msg);
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                        Console.WriteLine(ex.Message);
                        Console.ReadLine();
            }
    }
}


Credits: José M. Alarcón Aguín
#169
Cita de: [D4N93R] en  1 Septiembre 2010, 23:16 PM
No discuto la razón acá , simplemente te comparto mis experiencias :)

Un saludo y con respecto a:
Código (csharp) [Seleccionar]
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
Es susceptible a Sql Injection. Yo he visto a usuarios de administración haciendo queries xD se los juro!

Si, pero para que haria algo asi si solo son 2 personas la que lo manejan, aunque si lo decea antes de eso al pulsar el boton puede verificar lo que introdujo y asi hacer un antisql

Yo por ejemplo asi lo uso pero solamente las computadoras que e colocado pueden usar el programa un tipo de HWID que al iniciar antes del login verifica que la PC tenga admision a usar el programa jeje asi tengo usuarios confiables que la puedan usar

Pero nunca esta demas un pequeño codigo para AntiSql jeje
#170
Eso es lo que decia y como dicen los demas porque usas 2?, porque no nomas 1 ?
Entonces al loguearte si es correcto los datos que guarde el usuario en una variable y ya al usar el codigo de "INSERT" ahi pones la variable nose si me explico
Sino aqui te dejo un ejemplo

Código (VB.NET) [Seleccionar]

Dim da as new sqldataadapter
Dim dt as new datatable
dim comando as string
'Rellenar con tu codigo de conexion
dim conexion as string = ""

public sub login
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
form1.datagridview1.datasource = dt

if form1.datagridview1.rows.count = 2 then
'Logueado
form2.show
me.hide
else
msgbox("Error No se a podido loguear revisa los datos")
end if

end sub

public sub historial(byval log as string, byval fecha as string)
comando = "INSERT INTO Historial (Usuario, Accion, Fecha) VALUES ('" + form1.user.text + "', '" + log + "', '" + fecha + "')"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
da.update(ctype(dt,datatable))
end sub


Y ya solamente lo llamas desde lo necesites y tmb si deceas que si uno esta lgueado y el otro intenta entrar puedes hacer algo asi

Código (vb.net) [Seleccionar]

Dim da as new sqldataadapter
Dim dt as new datatable
dim comando as string
'Rellenar con tu codigo de conexion
dim conexion as string = ""

public sub login
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
form1.datagridview1.datasource = dt

if form1.datagridview1.rows.count = 2 then
'Logueado
'datagridview1(0,4) es 0 = la fila que seria la primera y 4 igual a la columna
'Que pense que eran estas ID, Usuario,Password, Conectado esas son las columnas que pense que podras tener
'Bueno espero te sirva ^^
if form1.datagridview1(0,4).value.tostring = "1" then
msgbox("Ya hay alguien logueado con esta cuenta")
exit sub
else
loginz()
end if

form2.show
me.hide
else
msgbox("Error No se a podido loguear revisa los datos")
end if

end sub

private sub loginz()
comando = "UPDATE Login set conectado = '1' where usuario ='" + form1.user.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
da.update(ctype(dt,datatable))
end sub

'Este lo inicias cuando se este cerrando el programa
private sub desloguear
comando = "UPDATE Login set conectado = '0' where usuario ='" + form1.user.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
da.update(ctype(dt,datatable))
end sub