Cognitum ASP.NET Providers for Cassandra

Cassandra Providers is a complete ASP.NET solution that uses the Cassandra Database data source for a custom Membership, Role, Profile, an Session-State providers. Developed in C# on the .NET 4 framework, Cassandra 2.0.8, Datastax CassandraCSharpDriver 2.0.3. Solution based on: AzureProviders
Solution implements all methods for this providers. Profile includes gender, birthday and portrait blob address Uri. To use this providers in your solution, include projects CassandraProviders, CassandraTableStorage and EmailSender and config your Web.config file.

To quickly run mvc application, see: Package.

Usage:

  • Host Cassandra Database.
  • Install Visual Studio 2010.
  • In Web.config:
    • Change the e-mail from send emails (key="fromEmail").
    • Set ApplicationName by your application name.
    • Set ConnectionString to connect to your Cassandra.
    • Set UserIsOnlineTimeWindow. It is seconds. Using by Membership Provider.
    • Set ReplicationFactor. It is Cassandra parameter.
    • Set UserIsActiveTimeWindow. It is seconds. Using by Profile Provider.
  • Set WebPage project as startup a project.
  • Initialize the application for the first time by going to Home page and click url: "To create Cassandra tables and Admin account. Click here".
  • Sign in with the Admin user (default user name is "admin" and default password is "cassandra2014"). It is defined in Web.config file.
  • You should probably change the statickey appsetting in the web.config file before going public since this is the encryption key, or use machine key instead.
  • If you have problems with find providers by your application, look at: Cofigure ASP.NET MVC4

Difference with Microsoft Providers:

  • Inactive profiles: time of inactivity is once defined in Web.config file, not by parameter userInactiveSinceDate of queries.

Problems and things to do:

  • Make model to ask for inactive profiles with different time (not defined once in config file).
  • Make better finding users by username and emails. (Now all inscriptions are match on server.)
  • Reduce sending data from database by asking Cassandra for interesting columns. (Now is sending full row.)
  • Refactor TableStorage by using names of tables and columns entities names.
  • Maybe once ask for totalRecords for query and next ask for this data with paging.
  • Maybe use Cassandra users mechanism.

Last edited Jul 30, 2014 at 1:07 PM by kbocian, version 13