美好的一天 . ASP.NET-Core项目没有认证 . 所以,我试图为此目的添加内置标识 . 数据库中的表已成功创建,新用户已注册 . 在登录方法_173514中的帐户控制器中返回成功进程 . 在局部视图中,Login \ Register的链接添加了注入和库(所有内容都看起来像带有身份验证的默认项目,基于其实现):
@using Microsoft.AspNetCore.Identity
@inject SignInManager<ApplicationUser> SignInManager
然后在视图中检查:
SignInManager.IsSignedIn(User)
登录后,它总是错误的,无关紧要的状态,在控制器中登录成功 . 我是否错过了在 Startup.cs
或 Startup.cs
添加的东西?通过身份验证实现默认VS项目中的所有内容 .
UPD . Startup.cs
中的配置
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql("Server=; Database=; Uid=;Pwd=;"));
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequireDigit = true;
options.Password.RequiredLength = 6;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = true;
options.Password.RequireLowercase = false;
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.User.RequireUniqueEmail = true;
options.SignIn.RequireConfirmedEmail = true;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
// Here added my application services.
.......
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
1 回答
在您的ConfigureServices方法中也配置cookie . 如下所示: