Login-Seite mit ASP.Net & Ajax
Ich bin versucht, eine login-Seite, die mit html, ajax & ASP.NET.Werden die Daten wirklich an die ajax-Funktion, aber wenn ich Debuggen der asp-Seite den Benutzernamen und das Kennwort gesendet, mit NULL.
Der code ist angeblich Benutzername & Passwort gibt dann die userid
Html-Seite:
<div id="usernameid">Username:</div><input id="username" type="text"/> <span id="username_status"></span>
<div id="passwordid">Password:</div><input id="password" type="password"/> <span id="password_status"></span>
<div> <input id="loginbutton" onclick="UserLogin()" type="submit" value="Submit" /></div>
Javascript:
function UserLogin() {
var postData = JSON.stringify({ "username": JSON.stringify($("#username").val()), "password": JSON.stringify($("#password").val()) });
alert(postData);
$.ajax({
type: "GET",
url: "http://localhost:49317/LoginPageForLearn.aspx",
data: postData,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonp: 'jsoncallback',
success: callbackfunction,
error: function (msg) { alert(msg); }
});
}
function callbackfunction(datacoming) {
localStorage["UserID"] = datacoming;
alert(datacoming);
Asp.net Seite:
protected void Page_Load(object sender, EventArgs e)
{
string userName = "";
int userId = -1;
string PassWord = "";
if (Request.QueryString.Count != 0 && Request.QueryString["username"] != string.Empty && Request.QueryString["password"] != string.Empty)
{
userName = Request.QueryString["username"];
PassWord = Request.QueryString["password"];
userId = GetUserID(userName, PassWord);
}
}
Haben Sie irgendwelche Ideen, warum nicht die Daten richtig übergeben ? Oder haben Sie andere Ideen, wie kann ich eine login Seite mit html und den Zugriff auf die Daten in SQL.
Vielen Dank.
- Sie versenden ein Passwort in Klartext über den QueryString? Gibt es überlegungen, die Sicherheit auf allen?
- hmm, sorry, ich bin immer noch lernen.Habt Ihr eine bessere Idee ?
- Ja, verwenden Sie HTTPS. Auch das POST-verb wird empfohlen, um zu vermeiden, das Passwort in Ihrem web-server-logs.
- Lassen Sie die postback passieren, und verwenden Sie die event-handler zu authentifizieren. Der Ansatz, die Sie verwenden, ist es komplizierter und weniger sicher.
- Dank der Darin & James! Ich bin traurig, weil ich viel Fragen.
- Keine Sorge. Das ist, wofür wir hier sind für.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie eine PageMethod:
und dann loszuwerden, die Doppel-JSON stringification und rufen Sie die Seite Methode:
und in Ihr Rückruf konnte man das Ergebnis testen der Seite Methode:
[WebMethod]
- Attribut, definieren Sie in Ihrem ASP.NET Seite und, die aufgerufen werden konnte, mit einem AJAX-Aufruf und senden JSON-Anforderung zu ihm. Im Grunde können Sie setzen einige server-side-Funktion-client scripting.Es funktioniert nicht so. Sie müssen auch etwas zurückgeben, um den client benachrichtigt, dass die Authentifizierung erfolgreich war oder fehlgeschlagen ist. Sie haben zu denken, über die Programmarbeit fließen.
Können Sie erstellen Sie eine statische Methode in die Seite, die Sie aufrufen, die einen Wert zurückgibt, in form von Bool-oder JSON. Etwas entlang diesen Linien:
AJAX würde in etwa so Aussehen:
In Ihrem Erfolg oder Misserfolg rufen Sie zurück, werden Sie beurteilen Sie von dort auf, was Sie tun möchten, ist den zurückgegebenen Wert.
In jedem Fall, ein hf wäre wohl besser, da es sich nicht enthalten unnötige markieren.