[英]Login with MVC and stored procedure
我創建了一個登錄頁面,但是嘗試登錄,但代碼確實通過了jQuery。 但是我輸入了正確的密碼和用戶名,但它總是讓我失敗。 那有人可以幫我嗎? 我之前在另一個登錄頁面上嘗試過這種方法,但是可以,但是這次,它不起作用。
// Web API
[HttpPost]
public IHttpActionResult Login([FromBody]testLogin LoginU)
{
if(HttpContext.Current.Session["user"] != null)
{
return Ok("LoggedIn");
}
else
{
using (Entities dbc = new Entities())
{
LogIn_Result result = dbc.LogIn(LoginU.id, LoginU.password).FirstOrDefault<LogIn_Result>();
user currentUser = null;
if (result != null)
{
DbSet<user> dbs = dbc.users;
IQueryable<user> q = from s in dbs
where s.id == result.id
select s;
user = q.FirstOrDefault<user>();
HttpContext.Current.Session["user"] = user;
return Ok("/Home/Index");
}
else
{
return Ok("Failed");
}
}
}
// jQuery
function performLogin() {
var login = {
userid: $("#TxtUserName").val(),
password: $("#TxtPassword").val()
};
var apiUrl = "/api/HomeAPI";
alert(login.password);
alert(login.userid);
$.ajax({
type: "POST",
url: apiUrl,
dataType: "JSON",
data: login,
success: function (result) {
alert(result);
if (result == "Failed") {
$("#spanMsg").html("OMG FAILLLL");
}
else if (result == "LoggedIn") {
$("#spanMsg").html("Another dude logon already");
}
else {
window.location.href = result;
}
}
});
}
$(document).ready(function () {
$("#BtnLogin").click(function () {
performLogin();
});
});
存儲過程:
CREATE PROCEDURE [LogIn]
@id int,
@password varchar(50)
AS
SELECT *
FROM [dbo].[user]
WHERE id = @id AND password = HASHBYTES('SHA1', @password)
如果您還有其他需要,請通知我。
我的用戶數據庫只有id( int
),一個FK( int
),用戶名( varchar
)和密碼( varbinary
)。
在performLogin()中,使用的變量必須與數據庫相同。
function performLogin() {
var login = {
id: $("#TxtUserName").val(),
password: $("#TxtPassword").val()
};
因此,只需將userid更改為id即可使用:D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.