Good day. ASP.NET-Core project was with out authentication. So, I tried to add built-in Identity for this purpose. Tables in database successfully created, new user registered. In Account controller in Login Method SignInManager
return success in process. In partial view, where links for Login\Register added injection and library (all looks as default project with authentication, based on its implementation):
@using Microsoft.AspNetCore.Identity
@inject SignInManager<ApplicationUser> SignInManager
Then in view checking:
SignInManager.IsSignedIn(User)
After Login it's always false, irrelevant moment ago state for login in controller was success. Have I missed to add something at Configuration
in Startup.cs
or some else? Implemented all things as in default VS project with authentication.
Upd. Configuration in 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?}");
});
}
In your ConfigureServices method configure cookies as well. Something like below:
...
// Here added my application services.
.......
services.ConfigureApplicationCookie(options =>
{
options.Cookie.HttpOnly = true;
options.Cookie.Expiration = TimeSpan.FromDays(5);
options.LoginPath = "/Account/Login";
});
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments