【发布时间】:2016-10-18 06:38:20
【问题描述】:
您好,我使用 C# webservice 和 ajax 调用登录,它正在工作,但有一个问题,我有 2 种用户类型(管理员和用户)问题是当用户登录时,他会根据用户重定向到他的页面类型,但是当他编写一个他可以访问的管理 url 时,我的问题是如何验证用户类型和授予对页面的访问权限,我不知道我的代码是否会有所帮助,但就是这样。
jQuery(验证本地存储状态):
function verifySesion() {
if (localStorage.UsuNombre == null)
document.location.href = "index.html";
else
$('#msj').html('Welcome: ' + localStorage.UsuNombre + '...');
}
用于ajax调用的jQuery:
function validarSesion() {
var usu = $('#Usuario').val();
var pass = $('#Contraseña').val();
if (usu != "" && pass != "") {
$.ajax({
type: 'POST',
url: urlServer + 'ws_alerts.asmx/ValidarSesion',
// Manda por post la variable us y pass
data: '{"usu":"' + usu + '","pass":"' + pass + '"}',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
error: function (jqXHR, text_status, strError) {
},
timeout: 600000,
success: function (data) {
//Se obtiene como resultado el numero 1, 2 o 0
//1: Aprobador 2: Usuario 0: No registrado
var resultado = data.d;
if (resultado == "1") {
localStorage.UsuNombre = usu;
document.location.href = "Alertas.html";
}
else
{
if (resultado == "2")
{
localStorage.UsuNombre = usu;
document.location.href = "Alert.html";
}
else
{
if (resultado == "0")
bootbox.alert("Try again.");
window.login.reset();
}
}
}
});
}
else
alert("Type User/Password please.");
}
C# 网络服务
public string ValidarSesion(string usu, string pass)
{
conn = new db_alerts();
string resultado = "false";
//1: Admin 2: User
int tipo = 1;
int respuesta = conn.ConsultarScalar("SELECT COUNT(Id) FROM tbl_usuarios WHERE Nombre='" + usu + "' AND Contraseña='" + pass + "' AND Tipo='" + tipo + "'");
if (respuesta == 1)
{
resultado = "1";
}
else
{
tipo = 2;
respuesta = conn.ConsultarScalar("SELECT COUNT(Id) FROM tbl_usuarios WHERE Nombre='" + usu + "' AND Contraseña='" + pass + "' AND Tipo='" + tipo + "'");
if (respuesta == 1)
{
resultado = "2";
}
else
{
//Variable que se enviara al JS
resultado = "0";
}
}
return resultado;
}
我知道这可能很难理解,但登录工作正常!我只想知道如何验证用户类型,例如:我在所有页面中验证 localStorage:
<script src="js/login.js"></script>
<script>verifySesion();</script>
也许对于用户来说,它的另一个函数 (verificarType) 使用 and if (If (localStorage.UsuTipe == '1'/"Admin" 或其他) 然后重定向) 和 else (alert("You can't access到这个页面...") 并重定向)
【问题讨论】:
标签: c# jquery ajax web-services login