<commit_before>MongoWSAT
=========

A pre-configured user administration section for ASP.NET websites (both MVC and WebForms) using MongoDB Membership and Role Providers.


Usage
-----

  1. Add MongoWSAT to your web project (MVC or WebForms) using Nuget
  2. Add relevant sections from 'example_web.config' and 'example_global.asax' files
  3. Point browser to 'Users/Default.aspx' and follow instructions to create the default admin account and role


Motivation
----------

Provide a quick way to administer users for ASP.NET websites (both MVC and WebForms) which use MongoDB rather than Sql Server.

ASP.NET MVC sites can use ASP.NET pages without issue so Hunzonian's MyWSAT Website Starter Kit offers a great way to get up and running quickly. But MyWSAT is closely tied to SQL Server.  
This project is a port of an older version of the MyWSAT Starter Kit which was not so closely tied to Sql Server.

Converting this project to use a NoSQL data store other than Mongo should be fairly straightforward.  The only place that explicitly relies on Mongo now is the WebProfile class.

  MyWSAT
  http://mywsat.codeplex.com/


License
-------

  LGPL - The WSAT code is largely unchanged from Hunzonian's earlier version and retains the original LGPL license.


Dependencies
------------

All dependencies are included.
  MongoProviders - https://github.com/alanning/MongoProviders
  NUnit - NuGet


Conventions
-----------

* The WebProfile class inherits from MongoProviders.User and saves its data into the same collection the MembershipProvider uses to save User data.
* The MembershipProvider and RoleProvider are optimized for Mongo and combine the ApplicationName into the CollectionName.  This saves us from having to include the ApplicationName in every query and also relieves us from having to include ApplicationName in the indexes. To query the collections from the Mongo Interactive Shell, run queries like so:  `> db['/users'].find()`
* The RoleProvider stores all roles as lowercase.  This is done to prevent someone from creating an "Administrator" role while someone else creates an "administrator" role.


Changes from MyWSAT<commit_msg>formatting<commit_after>MongoWSAT
=========

A pre-configured user administration section for ASP.NET websites (both MVC and WebForms) using MongoDB Membership and Role Providers.


Usage
-----

  1. Add MongoWSAT to your web project (MVC or WebForms) using Nuget
  2. Add relevant sections from 'example_web.config' and 'example_global.asax' files
  3. Point browser to 'Users/Default.aspx' and follow instructions to create the default admin account and role


Motivation
----------

Provide a quick way to administer users for ASP.NET websites (both MVC and WebForms) which use MongoDB rather than Sql Server.

ASP.NET MVC sites can use ASP.NET pages without issue so Hunzonian's MyWSAT Website Starter Kit offers a great way to get up and running quickly. But MyWSAT is closely tied to SQL Server.  
This project is a port of an older version of the MyWSAT Starter Kit which was not so closely tied to Sql Server.

Converting this project to use a NoSQL data store other than Mongo should be fairly straightforward.  The only place that explicitly relies on Mongo now is the WebProfile class.

  MyWSAT
  http://mywsat.codeplex.com/


License
-------

  LGPL - The WSAT code is largely unchanged from Hunzonian's earlier version and retains the original LGPL license.


Dependencies
------------

All dependencies are included.
  MongoProviders - https://github.com/alanning/MongoProviders
  NUnit - NuGet


Conventions
-----------

* The WebProfile class inherits from MongoProviders.User and saves its data into the same collection the MembershipProvider uses to save User data.
* The MembershipProvider and RoleProvider are optimized for Mongo and combine the ApplicationName into the CollectionName.  This saves us from having to include the ApplicationName in every query and also relieves us from having to include ApplicationName in the indexes. To query the collections from the Mongo Interactive Shell, run queries like so:  
`> db['/users'].find()`
* The RoleProvider stores all roles as lowercase.  This is done to prevent someone from creating an "Administrator" role while someone else creates an "administrator" role.


Changes from MyWSAT
{'fraction_non_alphanumeric': 0.061631139944392954, 'fraction_numerical': 0.0013901760889712697, 'mean_word_length': 3.916856492027335, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1902215', 'n_tokens_mistral': 1135, 'n_tokens_neox': 1054, 'n_words': 591}