Sharepoint 2013:How to force 'Membership.CreateUser' to take  connection string from Webapplication web.config while creating fba user inside EmailReceived eventreceiver ?

Hello friends,


When an email receives in document library,I have to create FBA user for the email sender!!

But I am getting error on MembershipUser user = Membership.CreateUser(username, defaultpassword, senderEmail, defaultQuestion, defaultAnswer, true, out createStatus)  : Unable to connect to SQL Server database.

After troubleshooting code(below) I  found  Membership.CreateUser is taking connection string from machine.config(below,also see in attached image)

_sqlConnectionString "data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"(kindly see attached image)

                    

How to force code to take  connection string from Webapplication web.config or is there any custom code to set connection string ?

 public override void EmailReceived(SPList list, SPEmailMessage emailMessage, String receiverData)
        {
            base.EmailReceived(list, emailMessage, receiverData);

            SPSecurity.RunWithElevatedPrivileges(delegate
            {
                try
                {
                    username = emailMessage.Sender.Trim();
                    query = emailMessage.PlainTextBody.Trim();
                    senderEmail = emailMessage.Sender;

                    MembershipCreateStatus createStatus;

                    username = username.Substring(0, username.LastIndexOf("@"));

                    MembershipUser user = Membership.CreateUser(username, defaultpassword, senderEmail, defaultQuestion, defaultAnswer, true, out createStatus);
                    switch (createStatus)
                    {

                        case MembershipCreateStatus.Success:
                            AddUserToGroup(securityGroup, user.Email, username);
                            AddQuery(user.Email, user.UserName, query);
                            SendEmail(username, senderEmail);
                            break;
                        case MembershipCreateStatus.DuplicateUserName:
                            AddUserToGroup(securityGroup, user.Email, username);
                            AddQuery(user.Email, user.UserName, query);
                            SendEmail(username, senderEmail);
                            break;
                        case MembershipCreateStatus.DuplicateEmail:
                            AddUserToGroup(securityGroup, user.Email, username);
                            AddQuery(user.Email, user.UserName, query);
                            SendEmail(username, senderEmail);
                            break;
                        // break;
                        ////This Case Occured whenver we send invalid mail format
                        //case MembershipCreateStatus.InvalidEmail:
                        //    lblResult.ForeColor = Color.Red;
                        //    lblResult.Text = "The email address you provided is invalid.";
                        //    return "InvalidEmail";
                        //// break;
                        //default:
                        //    lblResult.ForeColor = Color.Red;
                        //    lblResult.Text = "There was an unknown error; the user account was NOT created.";
                        //    return "default";
                        // break;
                    }

                }
                catch (MembershipCreateUserException ex)
                {
                    Trace.TraceInformation("MailProcessor exception: {0}", ex.Message);
                }

            });
        }

May 29th, 2015 2:58am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics