Я установил тему в основной проект asp. net и установил идентификационные данные для ускорения разработки, что дает мне контроллер входа в систему с именем Login.cshtml.cs
. Вы можете увидеть код ниже.
Теперь я хочу использовать функцию в Login.cshtml.cs
и войти в систему. Есть какой-либо способ сделать это? поскольку login.cshtml.cs
не имеет конечной точки API, я думаю, что трудно достичь этого.
Angular скрипт входа в систему
submit() {
const controls = this.loginForm.controls;
/** check form */
if (this.loginForm.invalid) {
Object.keys(controls).forEach(controlName =>
controls[controlName].markAsTouched()
);
return;
}
this.loading = true;
const authData = {
username: controls.username.value,
password: controls.password.value
};
}
Идентификационный файл входа в систему
using System;
using System.Collections.Generic;
namespace Areas.Identity.Pages.Account
{
[AllowAnonymous]
public class LoginModel : PageModel
{
private readonly UserManager<IdentityUser> _userManager;
private readonly SignInManager<IdentityUser> _signInManager;
private readonly ILogger<LoginModel> _logger;
public LoginModel(SignInManager<IdentityUser> signInManager,
ILogger<LoginModel> logger,
UserManager<IdentityUser> userManager)
{
_userManager = userManager;
_signInManager = signInManager;
_logger = logger;
}
public string ReturnUrl { get; set; }
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (ModelState.IsValid)
{
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, set lockoutOnFailure: true
var result = await _signInManager.PasswordSignInAsync(Input.UserName, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return Page();
}
}
// If we got this far, something failed, redisplay form
return Page();
}
}
}