[英]Login.aspx: i have to check the userID, Password as well as the title of the user
[英]I want to redirect from login.aspx to address.aspx if the user insert the correct username and password
這是login.aspx
的WebMethod
[WebMethod]
public static void logedin(string uname, string password)
{
tbl_user_login objLogedin = new tbl_user_login();
DataTable dtb = new DataTable();
dtb = objLogedin.loginUser(uname, password);
//result=dtb.Columns[0].ToString();
if (dtb.Rows.Count > 0)
{
Response.Redirect("http://localhost:26430/address.aspx");
//Server.Transfer("http://localhost:26430/address.aspx");
}
else {
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Username and Password')</script>");
}
}
這是user_login.cs類文件的數據庫代碼
public DataTable loginUser(string loginid,string passwrd)
{
DataTable dtb = new DataTable();
SqlConnection con = connect.startConnection();
try {
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from tbl_user_login where loginid=@loginid AND passwrd=@passwrd";
cmd.Parameters.AddWithValue("@loginid", loginid);
cmd.Parameters.AddWithValue("@passwrd", passwrd);
SqlDataAdapter adt = new SqlDataAdapter(cmd);
adt.Fill(dtb);
}
catch (Exception ex) {
connect.closeConnection(con);
}
connect.closeConnection(con);
return dtb;
}
這是在用戶單擊登錄按鈕時調用的angularJs函數
$scope.register = function () {
var uname = $scope.name;
var idtype = $scope.idtype;
var userid = "";
if (idtype == 1) {
var userid = $scope.email;
}
else {
if (idtype == 2) {
var userid = $scope.mobile;
}
}
var passwrd = $scope.passwrd;
$.ajax({
type: 'POST',
url: siteUrl + '/registration.aspx/registerUser',
data: JSON.stringify({ loginId: userid, password: passwrd, Verified: 0, IdType: idtype, UserName: uname }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (data, status) {
alet("Succeddfully Inserted");
},
failure: function (data, status) {
alert("Failed");
},
error: function (data, status) {
alert("Please provide a valid email address");
},
});
我的問題是: Response.Redirect
函數不起作用,並顯示紅色帶下划線的彈出窗口,因為在當前上下文中不存在Response,並且else部分也不起作用
$scope.register = function () {
var uname = $scope.name;
var idtype = $scope.idtype;
var userid = "";
if (idtype == 1) {
var userid = $scope.email;
}
else {
if (idtype == 2) {
var userid = $scope.mobile;
}
}
var passwrd = $scope.passwrd;
$.ajax({
type: 'POST',
url: siteUrl + '/registration.aspx/registerUser',
data: JSON.stringify({ loginId: userid, password: passwrd, Verified: 0, IdType: idtype, UserName: uname }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (data, status) {
alet("Succeddfully Inserted");
},
failure: function (data, status) {
alert("Failed");
},
error: function (data, status) {
alert("Please provide a valid email address");
},
});
代替Response.Redirect
從WebMthod
返回成功消息並通過WebMthod
進行重定向。
public static string logedin(string uname, string password)
{
tbl_user_login objLogedin = new tbl_user_login();
DataTable dtb = new DataTable();
dtb=objLogedin.loginUser(uname, password);
//result=dtb.Columns[0].ToString();
if (dtb.Rows.Count > 0)
{
return "valid";
}
else
{
return "invalid";
}
}
成功回調
success : function(response) {
if(response.d == 'valid') {
window.location('address.aspx');
}
else {
alert('Invalid username or password');
}
}
最好使用Angular $ http。 並在成功部分中添加如下所示的重定向:
$http({
url: "/registration.aspx/registerUser",
method: "POST",
data: {loginId: userid, password: passwrd, Verified: 0, IdType: idtype, UserName: uname}
}).success(function(data, status) {
$scope.data = data;
// redirect
$window.location='http://localhost:26430/address.aspx';
}).error(function(data, status) {
$scope.status = status;
});
不要忘記在控制器中注入$ http和$ window使其正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.