Hallo!
Ich habe vor kurzem mit C# angefangen. Ich programmiere gerade einen kleinen Chat mit Userauthentifizierung. Auf meinem Webspace läuft eine MySQL Datenbank. Man kann sich per Webformular registrieren. Leider komm ich nur von Localhost an die Datenbank ran. Mein Chatserver braucht aber zugriff auf die Userdaten um die Anmeldung zuzulassen oder nicht. Also habe ich ein PHP Skript geschrieben, dass per Get den gefragten Usernamen und den Hash des Passwortes bekommt und eine 1 ausgibt falls der User mit dem Passwort in der Datenbank ist und 0 falls nicht.
Das Problem ist, dass ab und zu eine AccessViolationException beim sResp = oStream.ReadToEnd(); in der folgenden Methode auftritt:
Wäre echt super wenn mir da jemand weiter helfen könnte! Mir gehen die Ideen aus!
Edit: Achja noch eine kleine Frage: Gibt es einen Unterschied zwischen string und String?
Ich habe vor kurzem mit C# angefangen. Ich programmiere gerade einen kleinen Chat mit Userauthentifizierung. Auf meinem Webspace läuft eine MySQL Datenbank. Man kann sich per Webformular registrieren. Leider komm ich nur von Localhost an die Datenbank ran. Mein Chatserver braucht aber zugriff auf die Userdaten um die Anmeldung zuzulassen oder nicht. Also habe ich ein PHP Skript geschrieben, dass per Get den gefragten Usernamen und den Hash des Passwortes bekommt und eine 1 ausgibt falls der User mit dem Passwort in der Datenbank ist und 0 falls nicht.
Das Problem ist, dass ab und zu eine AccessViolationException beim sResp = oStream.ReadToEnd(); in der folgenden Methode auftritt:
Code:
public bool userInDatabaseAndPasswordCorrect(string user, byte[] password)
{
String OneTimeHashString = "";
for (int i = 0; i < password.Length; i++)
OneTimeHashString += password[i].ToString("X2");
OneTimeHashString = OneTimeHashString.ToLower();
string sURL = "http://www.meineSeite.de/jokaChat/query.php?accesscode=einHashCodeUmFremdzugriffeZuErschweren&nickname=" + user + "&password=" + OneTimeHashString;
string sResp = "";
try
{
HttpWebRequest oWebReq = (HttpWebRequest)WebRequest.Create(sURL);
HttpWebResponse oWebResp = (HttpWebResponse)oWebReq.GetResponse();
StreamReader oStream = new StreamReader(oWebResp.GetResponseStream(), System.Text.Encoding.UTF8);
sResp = oStream.ReadToEnd();
oWebResp.Close();
oStream.Close();
if (sResp.Equals("1"))
return true; //OK
else
return false; //Anmeldung ablehnen
}
catch (System.AccessViolationException ave)
{
Console.WriteLine(ave.Source);
return false; //Anmeldung ablehnen
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false; //Anmeldung ablehnen
}
Code:
<?php
if(strcmp($accesscode, "meinHashcode zur Absicherung") == 0)
{
$db_server = "localhost";
$db_name = "**************";
$db_user = "***********";
$db_password = "*********";
//Verbinden und Datenbank wählen
$db = @mysql_connect($db_server, $db_user, $db_password) or die("Fehler beim Verbindungsaufbau!");
mysql_select_db("********", $db) or die("Fehler beim Auswählen der Datenbank!");
$sql = "SELECT nickname, password FROM `chatUser` WHERE nickname='".$nickname."' and password='".$password."';";
$result = mysql_query($sql) or die("Fehler bei der Abfrage!");
if(mysql_num_rows($result) > 0)
echo "1";
else
echo "0";
mysql_close($db) or die("Fehler beim Schließen der Verbindung!");
}
else
{
echo "0";
}
?>
Wäre echt super wenn mir da jemand weiter helfen könnte! Mir gehen die Ideen aus!
Edit: Achja noch eine kleine Frage: Gibt es einen Unterschied zwischen string und String?
Zuletzt bearbeitet: