+2006-11-27 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * SqlMembershipProvider.cs: typo bug
+
+2006-11-21 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed fixed exception type in GetPassword
+ checks user lockout
+
+2006-11-20 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed: UpdateUser works properly.
+
+2006-11-15 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed: name is used for ReturnValue parameter.
+
+2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * AnonymousIdentificationModule.cs: fixed anonymous id cookie
+
+2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * MembershipProvider.cs, SqlMembershipProvider.cs:
+ refactoring of DecryptPassword and EncryptPassword methods according
+ to documentation
+
+2006-09-10 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlRoleProvider.cs: throw on empty connection string.
+
+2006-09-26 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * Membership.cs: fixed GetAllUsers, typo bug
+ * SqlRoleProvider.cs, SqlMembershipProvider.cs: refactored to use
+ aspnetdb built in stored procedures,
+ fixed application name and membership relation,
+ improved exception handling
+
+2006-09-03 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * RolePrincipal.cs: refactoring: instance can be serialized.
+
+2006-09-03 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed GetUser,
+ when username is String.Empty methods returns null.
+
+2006-08-31 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlRoleProvider.cs: fixed initialization.
+
+2006-08-31 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed CreateUser,
+ password is checked, properties MinRequiredPasswordLength and
+ MinRequiredNonAlphanumericCharacters are considered.
+
+2006-08-29 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fix dispose order of reader vs connection.
+
+2006-08-28 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed CreateUser, parameter isApproved is
+ considered.
+
+2006-08-28 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlMembershipProvider.cs: ensure GetUser() returns null if it cannot
+ retrieve user information.
+
+2006-08-28 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlRoleProvider.cs, SqlMembershipProvider.cs:
+ "use SqlClientFactory in case the ProviderName is not specified.
+
+2006-08-27 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlRoleProvider.cs: enable concurrent usage, refactoring.
+
+2006-08-27 Konstantin Triger <kostat@mainsoft.com>
+
+ * SqlMembershipProvider.cs: enable concurrent usage, refactoring.
+
+2006-08-27 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * SqlMembershipProvider.cs: fixed ValidateUser, bug when user
+ not exists
+
+2006-08-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * FormsAuthentication.cs: set the Secure attribute of the authentication
+ cookie when required.
+
+2006-07-06 Konstantin Triger <kostat@mainsoft.com>
+
+ * FormsAuthentication.cs: Ensure initialized, fix url mapping.
+
+2006-05-03 Chris Toshok <toshok@ximian.com>
+
+ * SqlMembershipProvider.cs (GetAlg): move this here for the time
+ being, as it's the only class that uses it.
+ (HashAndBase64Encode): nuke.
+ (EncryptAndBase64Encode): nuke.
+ (Base64DecodeAndDecrypt): nuke.
+ (DecryptPassword): new function.
+ (EncryptPassword): new function.
+ (ChangePassword): replace the switch with a call to
+ EncodePassword.
+ (ChangePasswordQuestionAndAnswer): same.
+ (CreateUser): same.
+ (ResetPassword): same.
+ (ValidateUsingPassword): same.
+ (ValidateUsingPasswordAnswer): same.
+ (GetPassword): same, and throw MembershipPasswordException if the
+ password answer is incorrect.
+
+ * MembershipProvider.cs (InitVector): nuke this. it's actually
+ the salt from the database (for the sql provider, anyway).
+ (EncodePassword): based on the password format, password, and
+ salt, encode it. Makes use of EncryptPassword.
+ (DecodePassword): likewise for decoding, makes use of
+ DecryptPassword.
+ (DecryptPassword): revert this to throwing
+ NotImplementedException, as the sql provideroverrides it to
+ perform the actual decryption.
+ (EncryptPassword): same.
+
+2006-05-02 Chris Toshok <toshok@ximian.com>
+
+ * SqlMembershipProvider.cs: 85% complete, maybe more. The major
+ functionality should work. Password retrieval (and encrypted
+ passwords in general) is untested.
+
+2006-05-01 Chris Toshok <toshok@ximian.com>
+
+ * Membership.cs (GeneratePassword): don't include quotes (',",`)
+ in the set of characters in the generated passwords.
+
+2006-05-01 Chris Toshok <toshok@ximian.com>
+
+ * MembershipProvider.cs (GetAlg): switch from Exception to
+ ProviderException to match MS behavior (and fix the unit test.)
+
+ * Membership.cs (GeneratePassword): implement.
+
+2006-05-01 Chris Toshok <toshok@ximian.com>
+
+ * SqlMembershipProvider.cs: lots more work. checking this in in
+ its present state because I don't want to lose it. It still needs
+ work.
+
+ * Membership.cs (.cctor): remove the fallback.
+ (ValidatingPassword): remove the MonoTODO.
+
+ * MembershipProvider.cs (DecryptPassword): implement.
+ (EncryptPassword): implement.
+ (GetAlg): helper function for Decrypt/EncryptPassword.
+ (InitVector): same.
+
+2006-04-27 Chris Toshok <toshok@ximian.com>
+
+ * SqlMembershipProvider.cs (GeneratePassword): call
+ Membership.GeneratePassword with the configured minimum strength
+ requirements.
+
+2006-04-27 Chris Toshok <toshok@ximian.com>
+
+ * SqlMembershipProvider.cs (UnlockUser): fix sql query, and move
+ the CheckPararm call to the top of the method.
+
+2006-04-12 Chris Toshok <toshok@ximian.com>
+
+ * SqlMembershipProvider.cs: commit initial pass at
+ SqlMembershipProvider work. lots of stuff untested in here.
+
+2006-04-11 Chris Toshok <toshok@ximian.com>
+
+ * MembershipUser.cs (.ctor): per Shackow's book, all DateTime's
+ are converted using ToUniversalTime when passed into this class.
+ (UpdateSelf): update ourselves from the passed in MembershipUser,
+ swallowing NotSupportedExceptions.
+ (UpdateUser): fetch a new MembershipUser from the db and call
+ UpdateSelf with it.
+ (ChangePassword): call UpdateUser after changing the password.
+ (ChangePasswordQuestionAndAnswer): same.
+ (ResetPassword): same.
+ (UnlockUser): same. Also, don't explicitly set isLockedOut.
+ It'll be updated in UpdateSelf.
+ (CreationDate): getter calls ToLocalTime, setter calls
+ ToUniversalTime.
+ (LastActivityDate): same.
+ (LastLoginDate): same.
+ (LastPasswordChangedDate): same.
+ (LastLockoutDate): same.
+
+ * Membership.cs (.cctor): use
+ ProvidersHelper.InstantitateProviders, and remove some unnecessary
+ #if NET_2_0's.
+
+2006-03-29 Chris Toshok <toshok@ximian.com>
+
+ * SqlRoleProvider.cs: do the LOWER's in SQL, not in C#.
+
+2006-03-23 Chris Toshok <toshok@ximian.com>
+
+ * Roles.cs: make this 2.0 configuration aware.
+
+ * SqlRoleProvider.cs: flesh out all the operations. the only
+ things that need dealing with are the Initialize method's handling
+ of a few parameters, and the ApplicationName property.
+
+2006-03-23 Chris Toshok <toshok@ximian.com>
+
+ * DefaultAuthenticationModule.cs (OnDefaultAuthentication): always
+ set Thread.CurrentPrincipal, not just if we set it to the
+ GenericPrincipal.
+
+2006-03-22 Chris Toshok <toshok@ximian.com>
+
+ * RoleManagerModule.cs: implement using info in Shackow's book.
+
+ * RolePrincipal.cs: flesh this out a bit more.
+
+ * DefaultAuthenticationModule.cs (OnDefaultAuthentication):
+ according to Shackow's book, this sets Thread.CurrentPrincipal as
+ well as HttpContext.Current.User.
+
+2006-02-28 Chris Toshok <toshok@ximian.com>
+
+ * FormsAuthentication.cs: corcompare work.
+
+ * MembershipCreateUserException.cs: same.
+
+ * MembershipPasswordException.cs: same.
+
+ * AnonymousIdentificationModule.cs: same.
+
+2006-02-01 Chris Toshok <toshok@ximian.com>
+
+ * FormsAuthentication.cs, Membership.cs,
+ FormsAuthenticationModule.cs, UrlAuthorizationModule.cs: oops,
+ replace GetWebApplicationSection with GetSection.
+
+2006-02-01 Chris Toshok <toshok@ximian.com>
+
+ * FormsAuthentication.cs: CONFIGURATION_2_0 => NET_2_0.
+ simplifies the ifdef mess quite a bit.
+
+ * Membership.cs: same.
+
+ * FormsAuthenticationModule.cs: same.
+
+ * UrlAuthorizationModule.cs: same.
+
+2006-01-04 Chris Toshok <toshok@ximian.com>
+
+ * FormsAuthentication.cs (Authenticate): add CONFIGURATION_2_0
+ code.
+ (Decrypt2): same.
+ (Decrypt): same.
+ (Encrypt): same.
+ (Initialize): same.
+
+2006-01-04 Chris Toshok <toshok@ximian.com>
+
+ * Membership.cs (.cctor): enable the code here under
+ CONFIGURATION_2_0.
+
+2006-01-03 Chris Toshok <toshok@ximian.com>
+
+ * UrlAuthorizationModule.cs (OnAuthorizeRequest): add
+ CONFIGURATION_2_0 code here.
+
+2005-12-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * FormsAuthentication.cs: don't end the request in
+ RedirectFromLoginPage.
+
+2005-12-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * FormsAuthenticationModule.cs: expire the cookie. Fixes bug #77043.
+ Patch by Cyrille Colin.
+
2005-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* FormsAuthenticationModule.cs: ignore any exception thrown when mapping