В моем методе входа в систему мне нужно получить доступ к AD компании, чтобы получить логин пользователя, но этот доступ может занять некоторое время, поэтому мне нужно показать некоторое «загрузочное» сообщение или анимацию во время обработки метода входа
Как я могу сделать это, используя jQuery с ajax?
Моя идея состоит в том, когда пользователь отправляет запрос, вызывает функцию jquery с ajax, и этот метод вызывает метод Login.
Контроллер:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
ISecurityContext contextoCA = ISecurityContext.GetContext();
contextoCA.UserAuthenticator.Logon(model.Email, model.Password);
User ActualUser= ISecurityContext.GetContext().CurrentLoggedUser;
IApplicationEnvironmentAuthorizer environmentAuthorizer= contextoCA.ApplicationEnvironmentAuthorizer;
bool hasAuthorization= environmentAuthorizer.HasAnyAuthorization();
if (Request.Browser.Browser == "InternetExplorer")
{
ModelState.AddModelError("", "IE is not Supported");
}
if (!ModelState.IsValid)
{
return View(model);
}
if (ActualUser== null)
{
ModelState.AddModelError("", "User not Found.");
}
if (!hasAuthorization)
{
ModelState.AddModelError("", "No authorization profile configured for this user.");
}
else
{
return RedirectToAction("Index", "Home");
}
return View(model);
}
Вид:
<div class="py-5">
<div class="container">
<div class="row">
<div class="p-5 col-lg-8" style="margin-top:40px">
<div class="row">
<div class="container h-100">
<div class="d-flex justify-content-center h-100">
<div class="user_card">
<div class="d-flex justify-content-center">
<div class="brand_logo_container">
<img src="~/Content/img/logoRveAjustada.png" class="brand_logo" alt="Logo">
</div>
</div>
<div class="d-flex justify-content-center form_container">
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h5>Efetuar Login</h5>
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group" style="padding-top: 10px;">
<div class="input-group mb-4">
<span class="input-group-text"><i class="fa fa-user"></i> </span>
@Html.TextBoxFor(m => m.Email, new { placeholder = "Email", @class = "form-control col" })
<div class="col-md-12">
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
</div>
</div>
<div class="input-group mb-4">
<div class="input-group">
<span class="input-group-text" style="padding-left:15px"><i class="fa fa-unlock-alt"></i> </span>
@Html.PasswordFor(m => m.Password, new { placeholder = "Senha", @class = "form-control" })
<div class="col-12">
@Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
<div class="d-flex justify-content-center mt-3 login_container">
<button type="submit" value="Entrar" name="button" class="btn login_btn">Entrar</button>
</div>
}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>