Skip to content

ASP.NET Core Identity provider that uses LinqToDB.

License

Notifications You must be signed in to change notification settings

linq2db/LinqToDB.Identity

This branch is 94 commits ahead of, 581 commits behind aspnet/Identity:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a9ca319 · Jul 8, 2024
Nov 27, 2017
Dec 17, 2022
Jul 8, 2024
Dec 17, 2020
Jan 15, 2016
Aug 30, 2020
Sep 5, 2016
May 12, 2015
Nov 27, 2017
Oct 1, 2020
Dec 17, 2022
May 24, 2016
Nov 27, 2017
Jun 24, 2014
May 17, 2017
Jul 23, 2018
Nov 27, 2017
May 17, 2017
May 17, 2017
Oct 1, 2020
May 17, 2017

Repository files navigation

LinqToDB Identity store provider for ASP.NET Core Identity

  • Current build status Build status
  • Master build status Build status

Feeds

  • Release builds can be found on NuGet
  • MyGet
    • V2 https://www.myget.org/F/linq2db/api/v2
    • V3 https://www.myget.org/F/linq2db/api/v3/index.json

Usage

Install package:

PM> Install-Package linq2db.Identity

In general this is the same as for Entity Framework, just call AddLinqToDBStores instead of AddEntityFrameworkStores in your Startup.cs like here:

services.AddIdentity<ApplicationUser, IdentityRole>(options => {
    options.Cookies.ApplicationCookie.AuthenticationScheme = "ApplicationCookie";
    options.Cookies.ApplicationCookie.CookieName = "Interop";
    options.Cookies.ApplicationCookie.DataProtectionProvider = DataProtectionProvider.Create(new DirectoryInfo("C:\\Github\\Identity\\artifacts"));
})
    .AddLinqToDBStores(new DefaultConnectionFactory()) //here
    .AddDefaultTokenProviders();

The main difference with Entity Framework Core storage provider are:

  • We do not use hardcoded classes - interfaces like IIdentityUser<TKey> are used (but yes, we do have default implementation)
  • Data connection factory is used for calling to database

Identity and other mapping

We do not use any default mapping attributes on default POCOs (IdentityUser, IdentityRole and so on). This is because this types can be used on different environvents.

If in some reason you prefere using default POCOs you can use fluent mapping in your Startup.cs to define needed attributes.

For example to treat Id as identity:

    LinqToDB.Mapping.MappingSchema.Default.GetFluentMappingBuilder()
        .Entity<IdentityUser<int>>()
        .HasIdentity(_ => _.Id);

Special

All source code is based on original Microsoft Entity Framework Core storage provider for ASP.NET Core Identity.

Tests and sample are just adopted for using LinqToDB. For inmemory storage tests SQLite inmemory database is used.

About

ASP.NET Core Identity provider that uses LinqToDB.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 97.2%
  • PowerShell 2.0%
  • Shell 0.8%