How to configure authentication in ASP.NET Core 1.0

I am trying to add authentication to my application, I have an entity framework, but now I would like to authenticate the user, but I have many problems setting it up in the configure constructor.

For example, in many tutorials they provide code that no longer works, as if I were doing

// Configure ASP.NET Identity to use our Identity-based application context services.AddAuthentication() .AddIdentity() .AddEntityFrameworkStores() .AddDefaultTokenProviders(); 

He tells me that I need to explicitly specify type arguments, but is that what is in the tutorial?

https://shellmonger.com/2015/05/29/asp-net-mvc5-identity-part-1-the-database/

It’s hard for me to understand how to do it right, all I want to do is authenticate the user when he / she logs in.

Here is my project.json

  "dependencies": { "EntityFramework.Commands": "7.0.0-rc1-final", "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", "EntityFramework.Core": "7.0.0-rc1-final", "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final", "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final", "Microsoft.AspNet.Identity": "3.0.0-rc1-final", "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", "Microsoft.AspNet.Authorization": "1.0.0-rc1-final", "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", "Microsoft.AspNet.Server.WebListener": "1.0.0-rc1-final", "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta5", "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4", "Microsoft.Framework.Logging": "1.0.0-beta7", "Microsoft.Framework.Logging.Console": "1.0.0-beta8", "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final" }, 

and my configuration:

 public class Startup { public IConfigurationRoot Configuration { get; set; } public Startup() { var builder = new ConfigurationBuilder() .AddJsonFile("config.json") .AddJsonFile($"config.json", optional: true); builder.AddEnvironmentVariables(); Configuration = builder.Build(); } // 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 http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddEntityFramework() .AddSqlServer() .AddDbContext<OrganizationsAppContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])); // Specify the configuration of our Application database context services.Configure<Option>(options => { options.DefaultUserName = Configuration.Get("DefaultUser:Username"); options.DefaultUserPassword = Configuration.Get("DefaultUSer:Password"); }); // Configure ASP.NET Identity to use our Identity-based application context //services.AddAuthentication() // .AddIdentity() // .AddEntityFrameworkStores() // .AddDefaultTokenProviders(); DOES NOT WORK! services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.UseMvc(); app.UseDefaultFiles(); app.UseStaticFiles(); app.UseIdentity(); } // Entry point for the application. public static void Main(string[] args) => WebApplication.Run<Startup>(args); } 

Any help would be appreciated, my ideas are running out, I tried several other sites with the same result (did this make a change?).

+5
source share
1 answer

You can configure authentication in two ways in RC1:

1- When you add Identity

Example:

 services.AddIdentity<User, Role>(config => { // Config here config.User.RequireUniqueEmail = true; config.Password = new PasswordOptions { RequireDigit = true, RequireNonLetterOrDigit = false, RequireUppercase = false, RequireLowercase = true, RequiredLength = 8, }; }).AddEntityFrameworkStores<ApplicationContext, int>() .AddDefaultTokenProviders(); 

2- Use IdentityOptions :

Example:

 services.Configure<IdentityOptions>(options => { options.Password = new PasswordOptions { RequireDigit = true, RequireNonLetterOrDigit = false, RequireUppercase = false, RequireLowercase = true, RequiredLength = 8, }; options.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents { OnRedirectToLogin = ctx => { ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized; return Task.FromResult<object>(null); } }; }); } 

Additional Information: ASP.NET Authentication Domain

+9
source

Source: https://habr.com/ru/post/1246996/


All Articles