From 2c7db69f02da6e948256eafad5dc562e4a412f00 Mon Sep 17 00:00:00 2001 From: Nestor Date: Thu, 27 Feb 2014 16:46:57 -0200 Subject: [PATCH 1/2] Update PgMembershipProvider.cs Updated user email check skipping itself for all cases when updating any other attribute other than it is own email, it failed. --- .../PgMembershipProvider.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs b/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs index fa98b64..8c301a5 100644 --- a/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs +++ b/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs @@ -1,5 +1,5 @@ // -// Copyright © 2006 - 2013 Nauck IT KG http://www.nauck-it.de +// Copyright � 2006 - 2013 Nauck IT KG http://www.nauck-it.de // // Author: // Daniel Nauck @@ -1155,9 +1155,13 @@ public override bool UnlockUser(string userName) /// public override void UpdateUser(MembershipUser user) { - // validate duplicate email address, see issue #29 - if (RequiresUniqueEmail && !string.IsNullOrEmpty(GetUserNameByEmail(user.Email))) - throw new ProviderException("Duplicate E-mail address. The E-mail supplied is invalid."); + // validate duplicate email address sking itself, see issue #29 + if (RequiresUniqueEmail) + { + string userName = GetUserNameByEmail(user.Email); + if (!string.IsNullOrWhiteSpace(userName) && !userName.Equals(user.UserName, StringComparison.InvariantCultureIgnoreCase)) + throw new ProviderException("The e-mail address that you entered is already in use. Please enter a different e-mail address."); + } using (NpgsqlConnection dbConn = new NpgsqlConnection(m_connectionString)) { From ee645f44ca4015fc410f66c2ea3084cc63418126 Mon Sep 17 00:00:00 2001 From: Nestor Date: Thu, 27 Feb 2014 17:26:08 -0200 Subject: [PATCH 2/2] Update PgMembershipProvider.cs IsNullOrWhiteSpace was another project local extension method, changed to IsNullOrEmpty from .NET BCL. --- src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs b/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs index 8c301a5..60f0e5a 100644 --- a/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs +++ b/src/NauckIT.PostgreSQLProvider/PgMembershipProvider.cs @@ -1159,7 +1159,7 @@ public override void UpdateUser(MembershipUser user) if (RequiresUniqueEmail) { string userName = GetUserNameByEmail(user.Email); - if (!string.IsNullOrWhiteSpace(userName) && !userName.Equals(user.UserName, StringComparison.InvariantCultureIgnoreCase)) + if (!string.IsNullOrEmpty(userName) && !userName.Equals(user.UserName, StringComparison.InvariantCultureIgnoreCase)) throw new ProviderException("The e-mail address that you entered is already in use. Please enter a different e-mail address."); }