使用Cassandra数据库ASP.NET核心身份实现



我正在使用Windows上的Cassandra数据库构建ASP.NET Core MVC应用程序。

我需要用Cassandra实施ASP.NET核心身份的帮助。

在Google上,我在2.0.0.1版中找到了AspNet.Identity.Cassandra,但它与ASP.NET Core 1.0不兼容。

我正在为ASP.NET核心身份的数据存储适配器工作 这使您可以构建ASP.NET核心Web应用程序,包括会员资格,登录和用户数据。使用此库,您可以在Apache Cassandra上存储用户与会员相关的数据。

请注意库是Alpha版本,需要完成

如果您想尝试一下,请按照以下步骤操作:

1-从软件包管理器控制台运行以下命令以安装Cassandra Identity提供商。

Install-Package AspNetCore.Identity.Cassandra -Version 1.0.0-alpha1

2-将设置添加到 AppSettings.json

{   
    "CassandraNodes": [
        "127.0.0.1"
    ], 
    "CassandraOptions": {
        "KeyspaceName": "identity",
        "Replication": {
            "class": "NetworkTopologyStrategy",
            "datacenter1": "1"
        }
    } 
}

3-在 startup.cs

中配置服务
public void ConfigureServices(IServiceCollection services)
{    
    // CassandraOptions configuration
    services.Configure<CassandraOptions>(Configuration.GetSection("CassandraOptions"));
    // Cassandra ISession initialization
    services.AddCassandraSession<Cassandra.ISession>(() =>
    {
        var cluster = Cassandra.Cluster.Builder()
            .AddContactPoints(Configuration.GetSection("CassandraNodes").GetChildren().Select(x => x.Value))
            .Build();
        var session = cluster.Connect();
        return session;
    });
    // Added custom Cassandra stores
    services.AddIdentity<ApplicationUser, ApplicationRole>()
        .UseCassandraStores<Cassandra.ISession>()
        .AddDefaultTokenProviders();
    // Other code omitted
}

4-最后在 program.cs

中初始化db
public static class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build()
            .InitializeIdentityDb<ApplicationUser, ApplicationRole>();
}

有关更多信息,请查看GitHub的项目网站。

几个选项

  1. 尝试为ASP.NET Core实现自己的Cassandra身份,有许多示例如何为ASP.NET创建自定义IdentityUser(使用Google),然后使其与Cassandra一起使用
  2. fork/更新Aspnet.Identity.cassandra项目到.NET CORE(开源,因此易于实现您的自己)
  3. 使用另一个提供商,而不是Cassandra数据库
  4. github上的请求更新(第2节上的链接。)

最新更新