Search code examples
c#asp.net-core.net-coreasp.net-core-3.1.net-core-3.1

IApplicationBuilder does not contain a definition for UseIdentity


I'm following an example to configure ASP.NET Core Identity on ASP.NET Core 3.0

Here's the code for StartUp.cs file

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Users_WEB_APP.Models;

namespace Users_WEB_APP
{
    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.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<AppIdentityDbContext>(options => options.UseSqlServer(Configuration["Data:ASPNET_IDENTITY:ConnectionString"]));
            services.AddIdentity<AppUser, IdentityRole>()
                .AddEntityFrameworkStores<AppIdentityDbContext>();
            services.AddMvc(options => options.EnableEndpointRouting = false);
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseStatusCodePages();
            app.UseDeveloperExceptionPage();
            app.UseStaticFiles();
            app.UseIdentity();
            app.UseMvcWithDefaultRoute();
        }
    }
}

But at line app.UseIdentity(); I'm getting the error

'IApplicationBuilder' does not contain a definition for 'UseIdentity', and no accessible extension method 'UseIdentity' accepting a first argument of type 'IApplicationBuilder' could be found (are you messing a using directive or an assembly reference?)

What is it that I'm doing Wrong?


Solution

  • Documentation says that as of ASP.NET Core 2.2, UseIdentity is now obsolete and that UseAuthentication should be used instead

    This method is obsolete and will be removed in a future version. The recommended alternative is UseAuthentication(IApplicationBuilder)

    https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.builder.builderextensions.useidentity?view=aspnetcore-2.2