我使用用户基本身份验证创建了一个Core 2.0项目,但是在查看默认的AccountController时,只生成了Logout()操作方法。
其他脚手架项目在哪里,如Register(),ForgotPassword(),ExternalLogin()等......
但是,我可以很好地注册用户。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Core2.Data;
namespace Core2.Controllers
{
[Route("[controller]/[action]")]
public class AccountController : Controller
{
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly ILogger _logger;
public AccountController(SignInManager<ApplicationUser> signInManager, ILogger<AccountController> logger)
{
_signInManager = signInManager;
_logger = logger;
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
_logger.LogInformation("User logged out.");
return RedirectToPage("/Index");
}
}
}
答案 0 :(得分:1)
看起来您已经创建了一个Razor Pages ASP.NET核心MVC应用程序:
Razor Pages是ASP.NET Core MVC的一项新功能,它使以页面为中心的编码方案更容易,更高效。
如果查看项目中的Pages
文件夹,您将看到基于Razor页面的相关用户身份验证操作实现:
Pages
- Account
- Login.cshtml
- Login.cshtml.cs
- Register.cshtml
- Register.cshtml.cs
- ...
最新的Visual Studio 2017默认使用ASP.NET Core 2.0时创建Razor Pages应用程序,如下所示:
如果您需要传统的MVC方法,可以选择Web Application (Model-View-Controller)
选项,这将生成您期望的控制器,操作等。