Saat pertama kali anda masuk ke halaman situs yang
menggunakan ASP NET dengan url login, lalu kita diharuskan memasukan username
dan password untuk melanjutkan ke halaman berikutnya. Jadi anda tidak bisa langsung mengetikan
Url untuk halaman berikutnya di Browser karena ada proses Authority untuk
keamanan. Jadi hanya user yang terdaftar saja yang dapat masuk.
Tahukan konsep Redirect URL seperti yang
dideskripsikan di atas. Dimana setelah proses login akan redirect url ke
halaman lainnya. Di ASP Net ada beberapa cara untuk Redirect URL seperti
menggunakan Return RedirectToAction("Index", "Home") pada
method ActionResult pada controller. Namun yang akan saya bahas ini adalah
memanfaatkan return value oleh AJAX Json jadi akan mengeksikusinya menggunakan
windows.location di script.
window.location = https://www......
Adapun Cara Redirect URL menggunakan AJAK Json
Langkah 1
Buat common model untuk menampung value saat proses metode JsonResult di Controller.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace UserLoginSQLCommand.Models.Common
{
public class AjaxResult : BaseResult
{
public string ValueSuccess { get { return VALUE_SUCCESS; } }
public string ValueError { get { return VALUE_ERROR; } }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace UserLoginSQLCommand.Models.Common
{
public class BaseResult
{
public const string VALUE_SUCCESS = "SUCCESS";
public const string VALUE_ERROR = "ERROR";
public string Result { set; get; }
public string ProcessId { set; get; }
public string[] SuccMesgs { set; get; }
public string[] ErrMesgs { set; get; }
public object[] Params { set; get; }
public object[] Params2 { set; get; }
public string RedirectURL { set; get; }
}
}
Perhatikan public string RedirectURL itulah model yang
akan menampung value yang dibutuhkan.
Langkah 2
Buatlah Method JsonResult yang menghasilkan Return Value RedirectUrl seperti di bawah ini,
public JsonResult Login(string EmailId, string Password)
{
AjaxResult ajaxResult = new AjaxResult();
IList<string> errMesgs = new List<string>();
Int32 count;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "";
SqlCommand command = new SqlCommand(query, connection);
count = (Int32)command.ExecuteScalar();
//count =
connection.Close();
}
if (count > 0)
{
//Another Coding
ajaxResult.Result = AjaxResult.VALUE_SUCCESS;
ajaxResult.RedirectURL = "Member"; //<== ISI DENGAN Nama Controller yang dituju
}
else
{
ajaxResult.Result = ajaxResult.ValueError;
ajaxResult.ErrMesgs = new string[] { string.Format("{0} = {1}", "Warning", "File extension should be .xls or .xlsx") };
if (errMesgs.Count > 0)
{
ajaxResult.Result = AjaxResult.VALUE_ERROR;
ajaxResult.ErrMesgs = errMesgs.ToArray();
}
}
return Json(ajaxResult);
}
Langkah 3
Tempatkan Window.Location pada script ajax Post seperti di bawah ini,
function myFunction(){
function Callajaxlogin() {
var params = new Object();
params.EmailId = $("#txtusername").val(),
params.Password = $("#txtpassword").val()
$.ajax({
type: "POST",
url: "@Url.Content("~/Login/Login")",
contentType: 'application/json',
dataType: 'json',
traditional: true,
data: JSON.stringify(params),
success: function (returnResult) {
if (returnResult.Result == "SUCCESS") {
window.location = returnResult.RedirectURL;
}
else {
$("#pesanerror").html("");
}
},
error: function (data) {
//showErrorMesgGrowl('Login failed');
}
});
}
Langkah 4
Sekarang anda bisa langsung mencobanya dengan running project yang anda buat.
0 Comments