c# - 带有 EF Core 的 ASP.NET Core 注册页面上的错误
问题描述
我正在使用Gill Cleeren 制作的使用 Visual Studio 2017 Pluralsight 构建您的第一个 ASP.NET Core 2.1 MVC 应用程序。
我打开了最后一章,其中包含完整的 Bethany's Pie Shop 应用程序。
在下一步中,我构建了解决方案,在包管理器控制台中键入 update-database 并运行该应用程序。
该应用程序正在运行,并且在我尝试注册用户名之前一直有效。
我不知道究竟是什么错误,但数据未在 AspNetUsers 表中注册。
您可以在下面找到AccountController.cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Identity;
using BethanysPieShop.ViewModels;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace BethanysPieShop.Controllers
{
public class AccountController : Controller
{
private readonly SignInManager<IdentityUser> _signInManager;
private readonly UserManager<IdentityUser> _userManager;
public AccountController(SignInManager<IdentityUser> signInManager, UserManager<IdentityUser> userManager)
{
_signInManager = signInManager;
_userManager = userManager;
}
public IActionResult Login()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Login(LoginViewModel loginViewModel)
{
if (!ModelState.IsValid)
return View(loginViewModel);
var user = await _userManager.FindByNameAsync(loginViewModel.UserName);
if (user != null)
{
var result = await _signInManager.PasswordSignInAsync(user, loginViewModel.Password, false, false);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
}
ModelState.AddModelError("", "User name/password not found");
return View(loginViewModel);
}
public IActionResult Register()
{
return View(new LoginViewModel());
}
[HttpPost]
public async Task<IActionResult> Register(LoginViewModel loginViewModel)
{
if (ModelState.IsValid)
{
var user = new IdentityUser() { UserName = loginViewModel.UserName };
var result = await _userManager.CreateAsync(user, loginViewModel.Password);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
}
return View(loginViewModel);
}
[HttpPost]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
return RedirectToAction("Index", "Home");
}
}
}
请让我知道您是否需要其他文件。
你知道我该如何解决这个问题吗?
谢谢。
LE:看来我可以从数据库中检索信息。所以,我认为问题可能来自代码。我还将在Startup.cs文件下面发布:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using BethanysPieShop.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Identity;
namespace BethanysPieShop
{
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<AppDbContext>();
//services.AddTransient<IPieRepository, MockPieRepository>();
services.AddTransient<IPieRepository, PieRepository>();
services.AddTransient<IFeedbackRepository, FeedbackRepository>();
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDeveloperExceptionPage();
app.UseStatusCodePages();
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
LE2:我已经在以下链接上传了项目:https ://wetransfer.com/downloads/22127bc342c3c969cf2ccdd208506b7120200122210123/68db42
解决方案
推荐阅读
- mysql - sql:选择 * 和最小值,没有过滤行
- c++ - C++ 简化类/OOP 方法
- kubernetes - 并行 pod 的 subPathExpr
- javascript - 单击色板时如何更改特色图像?
- elasticsearch - 在 idex 中查找短语
- vue.js - 如何在 v-textarea 中隐藏滚动条?
- python - RNN 带或不带循环:每个输出的含义?
- python - Cisco WebEx:使用 Python 2.7 为一组新令牌生成新代码时出现问题
- php - 如何在 laravel 版本 5.0.35 中配置任何 restful api 包,如 laravel/passort 或 dingo/api(*没有作曲家)
- html - 是否有任何 CSS 代码来定位图像,如下所示但也响应屏幕尺寸?