public override bool ChangePassword(string username, string oldPwd, string newPwd) { if (!ValidateUser(username, oldPwd)) { return(false); } try { ReplaceableAttribute replaceAttribute = new ReplaceableAttribute().WithName("Password").WithValue(newPwd).WithReplace(true); PutAttributesRequest request = new PutAttributesRequest().WithDomainName(domain).WithItemName(username).WithAttribute(replaceAttribute); client.PutAttributes(request); return(true); } catch (Exception e) { if (WriteExceptionsToEventLog) { WriteToEventLog(e, "ChangePassword"); throw new ProviderException(exceptionMessage); } else { throw e; } } return(false); }
public override string ResetPassword(string userName, string answer) { string newPassword = Membership.GeneratePassword(6, 0); string passwordAnswer = String.Empty; GetAttributesRequest request = new GetAttributesRequest() { DomainName = Settings.Default.AWSMembershipDomain, ItemName = userName, AttributeNames = PasswordStrings }; GetAttributesResponse response = this._simpleDBClient.GetAttributes(request); foreach (Attribute att in response.Attributes) { switch (att.Name) { case "PasswordAnswer": { passwordAnswer = att.Value; break; } } } if (this.RequiresQuestionAndAnswer && !this.CheckPassword(answer, passwordAnswer)) { throw new MembershipPasswordException("Incorrect password answer."); } ReplaceableAttribute replace = new ReplaceableAttribute() { Name = PasswordStrings[0], Value = newPassword, Replace = true }; PutAttributesRequest prequest = new PutAttributesRequest() { DomainName = Settings.Default.AWSMembershipDomain, ItemName = userName, Attributes = new List <ReplaceableAttribute>() { replace } }; this._simpleDBClient.PutAttributes(prequest); return(newPassword); }
/// <summary> /// Puts attribiutes in SimpleDB /// </summary> /// <param name="domainName"></param> /// <param name="itemName"></param> /// <param name="name"></param> /// <param name="replace"></param> /// <param name="value"></param> public void PutAttribute(string domainName, string itemName, string name, bool replace, string value) { var replaceableAttribute = new ReplaceableAttribute { Name = name, Replace = replace, Value = value }; var request = new PutAttributesRequest { DomainName = domainName, ItemName = itemName, Attribute = new List <ReplaceableAttribute>() { replaceableAttribute } }; Client.PutAttributes(request); }
public string Request(Domain.Insert pInsert) { #region Attributes and values validation if (pInsert.Attributes.Count != pInsert.Values.Count) { throw new Exception("SimpleSQL: insert command has different attributes and values."); } #endregion PutAttributesRequest mPutAction = new PutAttributesRequest().WithDomainName(this.GetDomainName(pInsert.Table)).WithItemName(pInsert.ItemID.ToString()); List <ReplaceableAttribute> mPutAttributes = mPutAction.Attribute; ReplaceableAttribute mAttribute; #region Add attributes to the SimpleDB object int mTotalAttributes = pInsert.Attributes.Count; for (int mIndex = 0; mIndex < mTotalAttributes; mIndex++) { mAttribute = new ReplaceableAttribute() { Name = pInsert.Attributes[mIndex], Value = pInsert.Values[mIndex].ToString() }; mPutAttributes.Add(mAttribute); } #endregion mPutAttributes.Add(new ReplaceableAttribute().WithName(this.aSimpleSQLTableName).WithValue(pInsert.Table)); PutAttributesResponse mResponse = this.aSimpleDBClient.PutAttributes(mPutAction); return(mResponse.ToString()); }
public override string ResetPassword(string username, string answer) { if (!EnablePasswordReset) { throw new NotSupportedException("Password reset is not enabled."); } if (answer == null && RequiresQuestionAndAnswer) { throw new ProviderException("Password answer required for password reset."); } string newPassword = System.Web.Security.Membership.GeneratePassword(6, 0); string passwordAnswer = ""; try { GetAttributesRequest request = new GetAttributesRequest().WithDomainName(domain).WithItemName(username).WithAttributeName(new string[] { "Password", "PasswordAnswer" }); GetAttributesResponse response = client.GetAttributes(request); if (response.IsSetGetAttributesResult()) { GetAttributesResult result = response.GetAttributesResult; foreach (Attribute att in result.Attribute) { switch (att.Name) { case "PasswordAnswer": passwordAnswer = att.Value; break; default: break; } } } else { throw new MembershipPasswordException("User not found"); } if (RequiresQuestionAndAnswer && !CheckPassword(answer, passwordAnswer)) { throw new MembershipPasswordException("Incorrect password answer."); } // Update the new password here ReplaceableAttribute replace = new ReplaceableAttribute().WithName("Password").WithValue(newPassword).WithReplace(true); PutAttributesRequest prequest = new PutAttributesRequest().WithDomainName(domain).WithItemName(username).WithAttribute(replace); client.PutAttributes(prequest); } catch (Exception e) { if (WriteExceptionsToEventLog) { WriteToEventLog(e, "ResetPassword"); throw new ProviderException(exceptionMessage); } else { throw e; } } return(newPassword); }