* Cache ServerVersion.AutoDetect
Adjusted database connections so that they cache ServerVersion.AutoDetect result on first hit and reuse.
This resolves a current bug that exhausts or times out connections to database.
* Change to dictionary
* Update Source/ACE.Database/DatabaseManager.cs
Co-authored-by: gmriggs <gmriggs@gmail.com>
* Update DatabaseManager.cs
* Update DatabaseManager.cs
---------
Co-authored-by: gmriggs <gmriggs@gmail.com>
Refactored to a non-user configurable string reference, shared across all connection paths
Added AllowUserVariables=True to fix bug introduced as a result of switching to MySqlConnector
* Update EF Nuget Packages
This requires ACE.Adapter and ACE.Database to be updated from .net standard 2.0 to 2.1
* Update ACE.Database.csproj
* fix merge
* Change WorkFactor to 8
* Add configuration option for password workfactor, and migration option to support [up/down]grade at runtime
* Fix a default
* Do not pass in values less 4 and greater than 31 to prevent server crash
* Update defaults
* Update account authentication to use BCrypt.
This updates account authentication to use the BCrypt hashing algorithm in place of SHA512 and the need for a separate password salt.
Bcrypt is also more secure since it uses a "Work Factor" to discourage password brute force attacks and the implementaition is much cleaner overall since the salt is randomly generated and added as part of the password hash itself, effectively protecting against rainbow table attacks.
The default WorkFactor is set to 10 which is the considered the current industry standard. A server owner can easily increase this value to whatever level of security they desire which in turn will make password verification slower and much harder to crack if ever brute forced by a hacker.
Furthermore, BCrypt is used in PHP's passwordHash() function so this change will open up some more account management possibilities through PHP registration scripts, especially CMS's and database bridging.
* Update AuthDbContext.cs
* Add Update script for Auth database
* Update Account / AuthDb for in-place migrations
* Fix a whitespace error
* Add 'passwd' and 'set-accountpassword' commands
* Update changelog
* Update AuthenticationBase.sql
Revert Auth Base to previous commit
* Update changelog.md
* Change child assemblies to AnyCPU. Ace.Server still x64
* Fix LifestonedConverter for > ushort.MaxValue weenies
* Allow DbContexts to be configured/used by other applications
* Make GetWeenie public
* SQLWriters should take IDictionary, not Dictionary
* Include links
* Keep tests as x64
* Change Enchantment Registry to use composite key instead of a primary key id column
* Add a few indexes
* Remove indexes added in #1206
* Rescaffold
* Switch EnableSensitiveDataLogging in AuthDbContext to a specific EFAUTHDEBUG variable
* Update changelog.md
* AuthenticationDatabase switched to Entity Framework Core, DB First
* Adds AsNoTracking() for performance and implements CreateAccount() instead of AddAccount()
* woops
* Auth db no longer needs to be init, or inherit from Database
* test fix hopefully
* Database objects in ACE.Entity would no longer be required
* Major WIP
* more progress
* AuthenticationDatabase switched to Entity Framework Core, DB First
* Adds AsNoTracking() for performance and implements CreateAccount() instead of AddAccount()
* woops
* Auth db no longer needs to be init, or inherit from Database
* test fix hopefully
* Database objects in ACE.Entity would no longer be required
* Major WIP
* more progress
* include missing CharacterCreateInfo
* GetCharacters changes to show how we can use the propertybag for these values
* Lot of progress with the WorldObject code
* comment add
* add biota to CreateWorldObject for loading inv from db