【发布时间】:2018-08-20 14:05:48
【问题描述】:
我有登录页面,用户输入他们的电子邮件和密码,但我想在他们输入错误密码时显示警报或文本,例如(您输入的密码无效)。我已经检查了Checkpass 不为空做某事,否则我不知道我应该做什么老实说。谁能帮助我或指出我正确的方向!
提前致谢:)
控制器:
[HttpPost]
public JsonResult Login(string Mail, string pass)
{
var hashedPass = PasswordSecurity.PasswordStorage.CreateHash(pass);
using (DbNameSpace db = new DbNameSpace())
{
var query = from cbr in db.Contact_Business_Relation
join c in db.Contact on cbr.Contact_No_ equals c.Company_No_
join sa in db.Sales_Header on cbr.No_ equals sa.Sell_to_Customer_No_
join px in db.PX2 on c.E_Mail equals px.Email_ID
where c.E_Mail == Mail.ToLower()
select new
{
Mail = c.E_Mail,
pass = px.PS,
};
var user = query.FirstOrDefault();
var CheckPass = PasswordSecurity.PasswordStorage.VerifyPassword(pass, user.pass);
if (user != null && CheckPass) //Checkpassword
{
Session["Email"] = user.Mail.ToString();
}
else {
// ??
}
return Json(user, JsonRequestBehavior.AllowGet);
}
}
JavaScript:
<script>
$(document).ready(function () {
$("#login").click(function (e) {
var email = $("input[name=Mail]").val();
var password = $("input[name=pass]").val();
e.preventDefault();
$.ajax({
type: "POST",
dataType: "json",
url: '@Url.Action("Login", "Account")',
data: { Mail: email, pass: password },
success: function (status) {
if (status) {
window.location.href = "/Account/Index";
}
}
});
});
});
</script>
查看:
<form autocomplete="on" class="login100-form validate-form">
<div>
<label>E-mail</label>
<div class="wrap-input100 validate-input" data-validate="Valid email is required: ex@abc.xyz">
<input class="input100" type="email" id="Email" name="Mail" placeholder="E-mail">
</div>
<label>Password</label>
<div class="wrap-input100 validate-input" data-validate="Password is required">
<input class="input100" type="password" id="Password" name="pass" placeholder="Kodeord">
</div>
<div id="invalidpassword"></div>
<div class="container-login100-form-btn">
<button id="login" class="login100-form-btn">
Log in
</button>
</div>
</form>
【问题讨论】:
-
您使用哪种形式的身份验证?我没有看到您发出令牌或 cookie。
-
返回json时可以设置错误信息。想要样品吗?
-
@Tomato32 如果能给我一个例子就好了:)
-
@Marco 直到现在还只是形式 :)
-
使用ajax,然后重定向是没有意义的。 ajax 的全部意义在于保持在 same 页面上。正常提交即可,如果有错误,返回视图显示,否则在 POST 方法中重定向。
标签: javascript c# ajax asp.net-mvc