我正在使用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
中初始化dbpublic 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的项目网站。
几个选项
- 尝试为ASP.NET Core实现自己的Cassandra身份,有许多示例如何为ASP.NET创建自定义IdentityUser(使用Google),然后使其与Cassandra一起使用
- fork/更新Aspnet.Identity.cassandra项目到.NET CORE(开源,因此易于实现您的自己)
- 使用另一个提供商,而不是Cassandra数据库
- github上的请求更新(第2节上的链接。)