Ejemplo n.º 1
0
        public B2CUser CreateUser(B2CNewUser NewUser)
        {
/*#if DEBUG
 *          Console.WriteLine(JsonConvert.SerializeObject(NewUser));
 #endif*/
            WebRequest req = WebRequest.Create(Globals.aadGraphEndpoint + Tenant + "/users?" + Globals.aadGraphVersion);

            req.Headers.Add("Authorization", "Bearer " + Client.authContext.AcquireToken(Globals.aadGraphResourceId, Client.credential).AccessToken);

/*#if DEBUG
 *          string val = req.Headers["Authorization"];
 *          var blah = "";
 #endif*/
            req.ContentType = "application/json";
            req.Method      = "POST";
            string body = JsonConvert.SerializeObject(NewUser, Formatting.None, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

#if PROD
            body = body.Replace("a67c327875c34024bd4523a3d66619ba", "be6dc6c96b4c411780751b4231962926");
#endif
            byte[] bA = Encoding.UTF8.GetBytes(body);
            req.ContentLength = bA.Length;
            try
            {
                Stream s = req.GetRequestStream();
                s.Write(bA, 0, bA.Length);
                s.Close();
                WebResponse res = req.GetResponse();
                s = res.GetResponseStream();
                StreamReader sr       = new StreamReader(s);
                string       response = sr.ReadToEnd();
                return(JsonConvert.DeserializeObject <B2CUser>(response.Replace("be6dc6c96b4c411780751b4231962926", "a67c327875c34024bd4523a3d66619ba")));
            }
            catch (Exception ex)
            {
                B2CUser u = new B2CUser
                {
                    userType = "Error", mail = body, displayName = ex.Message, city = ex.StackTrace
                };
                return(u);
            }
            //return JsonConvert.DeserializeObject<B2CUser>(Client.CreateUser(JsonConvert.SerializeObject(NewUser)).Result);
        }
Ejemplo n.º 2
0
        protected void signUpBtn_Click(object sender, EventArgs e)
        {
            Page.Validate("registration");
            if (!Page.IsValid)
            {
                return;
            }
            //if trade user, then accountEnabled is true automatically without approval
            GraphApi.B2CNewUser newUser = new B2CNewUser
            {
                accountEnabled = (distributeChk.Checked) ? false : true,
                signInNames    = new SignInName[] { new SignInName
                                                    {
                                                        type  = "emailAddress",
                                                        value = emailTxt.Text
                                                    } },
                displayName     = firstNameTxt.Text + " " + lastNameTxt.Text,
                creationType    = "LocalAccount",
                givenName       = firstNameTxt.Text,
                mailNickname    = emailTxt.Text.Split('@')[0],
                passwordProfile = new PasswordProfile
                {
                    password = passTxt.Text,
                    forceChangePasswordNextLogin = false
                },
                passwordPolicies = "DisablePasswordExpiration",
                streetAddress    = emailTxt.Text,
                surname          = lastNameTxt.Text,
                usageLocation    = "US",
                userType         = "member",
                extension_a67c327875c34024bd4523a3d66619ba_Birthdate            = birthdayTxt.Text,
                extension_a67c327875c34024bd4523a3d66619ba_Email                = emailTxt.Text,
                extension_a67c327875c34024bd4523a3d66619ba_Employer             = (employerDDL.SelectedIndex > 0) ? employerDDL.SelectedItem.Value : null,
                extension_a67c327875c34024bd4523a3d66619ba_SuccessFactorsRoleID = (!distributeChk.Checked) ? "Trade_ID" : "Dist_ID",
                extension_a67c327875c34024bd4523a3d66619ba_SuccessFactorsID     = (Guid.NewGuid()).ToString().Replace("-", "").Substring(0, 20) + "_EXT",
                country = (countryDDL.SelectedIndex > 0) ? countryDDL.SelectedItem.Value : null,
                state   = (stateDDL.SelectedIndex > 0) ? stateDDL.SelectedItem.Value : null
            };
            if (distributeChk.Checked)
            {
                newUser.extension_a67c327875c34024bd4523a3d66619ba_Region             = GetRegion();
                newUser.extension_a67c327875c34024bd4523a3d66619ba_BeamSuntorySponsor = beamSuntorySponsorTxt.Text;
                newUser.extension_a67c327875c34024bd4523a3d66619ba_Area             = (areaDDL.SelectedIndex > 0) ? areaDDL.SelectedItem.Value : null;
                newUser.extension_a67c327875c34024bd4523a3d66619ba_OnOffPremise     = (onOffPremiseDDL.SelectedIndex > 0) ? onOffPremiseDDL.SelectedItem.Value : null;
                newUser.extension_a67c327875c34024bd4523a3d66619ba_CommercialRegion = GetCommercialRegion();
                newUser.extension_a67c327875c34024bd4523a3d66619ba_Division         = (stateDDL.SelectedIndex > 0 && countryDDL.SelectedItem.Value == "United States") ? GetDivision(stateDDL.SelectedItem.Value) : null;
            }
            GraphApi.AADUser aad  = new AADUser(tenant, id, secret);
            GraphApi.B2CUser user = null;
            try
            {
                user = aad.CreateUser(newUser);
            }
            catch (Exception ex)
            {
                //signupFormPnl.ContentTemplateContainer.Controls.Add(new LiteralControl("<div>" + ex.Message + "</div><div>" + ex.StackTrace + "</div><div>" + ex.InnerException + "</div>"));
                //signupFormPnl.Update();

                successMsg.Controls.Add(new LiteralControl("<h1>Whoops!</h1><p>We were unable to complete your registration at this time. If you are still experiencing issues, please contact <a href='mailto:[email protected]'>[email protected]</a> for assistance.</p><a class='btn' href='/'>OK</a>" + ex.Message));
                successMsg.Controls.Add(new LiteralControl("<style>.form .row {display:none !important;}.footer .btn {display:none;}</style>"));
                successMsg.Controls.Add(new LiteralControl("<div class='error' style='display:none'><div>New User Details:</div><div>" + Newtonsoft.Json.JsonConvert.SerializeObject(user) + "</div></div>"));
                signupFormPnl.Update();
            }
#if DEBUG
            successMsg.Controls.Add(new LiteralControl("<div style='display:none'><div>New User Details:</div><div>" + Newtonsoft.Json.JsonConvert.SerializeObject(user) + "</div></div>"));
#endif
            if (user != null)
            {
                if (user.userType != "Error")
                {
                    //woo... also indicate to the user that they have been signed up pending approval
                    //send pending user email to admin
                    if (distributeChk.Checked)
                    {
                        successMsg.Controls.Add(new LiteralControl("<h1>Registration Complete!</h1><p>You have successfully registered for Beam Suntory Connect. Your registration is pending approval which can take 1 - 2 business days.</p><a class='btn' href='/'>OK</a>"));
                    }
                    else
                    {
                        successMsg.Controls.Add(new LiteralControl("<h1>Registration Complete!</h1><p>You have successfully registered for Beam Suntory Connect and can use the system immediately. Note that youre learning courses will take 1 -2 business days to be available.</p><a class='btn' href='/'>Login</a>"));
                    }
                    bool TradeUser = (distributeChk.Checked) ? false : true;
                    Classes.Helpers.LogUserChange(TradeUser, false, GetUserDictionary(user));
                    successMsg.Controls.Add(new LiteralControl("<style>.form .row {display:none !important;}.footer .btn {display:none;}</style>"));
                    signupFormPnl.Update();
                }
                else
                {
#if PROD
                    string resetUrl = "https://passwordreset.microsoftonline.com/?ru=https%3a%2f%2flogin.microsoftonline.com%2fextbeamsuntory.onmicrosoft.com%2freprocess%3fctx%3drQIIAbVSv4vTcBQnSTt4HCgFQTiQG24S0uSbpL220KG9_rCl_YZrm4vNlqTftN80ybfXfEua4OCqooOIQic5t9vURW_wD7jFcxNHJ3F0ctNWwUXQyeF9eLz3Ph_e4_NucCALSnuWJZkSkk3ezqF9XnFEky8UkMivAzgj2bGBo8wzW1e2P78RMzuN6tPlzt3vW6_erZjraEktZPrhIqBkHmdJ4GN7TkLi0KxN_FOmP6F0FpYEwSNjHGR_d0ng4QBtZgSKhL-rCMRc0IkkbHCOwtlrhrlgmDssc49NAVGWV2waBbzWf8Yyp-w1o9uDN_UjywirpD5LLOdAV6ZRufyRvaxWNjobIHOcoE9_VL6w6Z97fmXTxws0jx9xV8kMBXhkkyBANs3iESVTFKy4-wyK24O-dohV3FY6Okg6OoxMXaS2381DSYuhD13D1-jQNTA8EEVDryedwThnDLoUNrVo6E4ltdmYGrqWtHCEj-peveUSrDYPl119KA2TCoUunKhrLqyN_DU3hrUhhX7bg66tDJMqNtzKshWIL7l_-HDG7YkyyOWkEeJFVCzwShEB3txfZw6QRUsumnkpv3_ObSPfxN7ur6M_cMxFivmWYk7Sa_Prj58_fPvgdu3Fe547eZLJnqeFTk-YjYuJE_eaqpsb3QLuMozCQQGAmNZacmV23OsaSWOAvaislMDZpf_xDT8A0&mkt=en-US&hosted=0&device_platform=Windows+10&nca=1&domain_hint=extbeamsuntory.onmicrosoft.com";
#endif
#if DEV
                    string resetUrl = "https://passwordreset.microsoftonline.com/?ru=https%3a%2f%2flogin.microsoftonline.com%2fbsib2cdev.onmicrosoft.com%2freprocess%3fctx%3drQIIAa1SO2zTUBSV7UQChARCQiJMIHUCOX7v2Wk-UoZ8HOQS28JxEmyxOPZz8kzslyavpPHExAALqjplKowdEUKoYmXJ1BExMIBYEBNiYKQBiaVi63DPcO_R0T3n3lsCzMPKxmCAPIRlT_QLuCgqIfDEUgkD8aRgGMihD0NleuXC5S83V_u5Tnr3xdf39PX3vU9LLlfvaHXUaOJHeZrExJ_SGQ1Z3qfxIWeMGJvMKpI0pkOS5P9NaTImCV5zJIalwYwMkB-cFpCot8NGSFrjFM8mbznumOMe89xTPgOBLC_5LE7EbueA5w75a2V6W5F7buB4eq_kFSwE5sloWK1-5C-ZtbXOGuiUpPjzqc43PvtnxR98dnsHTxd7wlU6wQkJfJok2Gd5EjD6ECdL4RmHF1t2p3uPmGRLafdh2u4bc68PmB_rm06kAzfWFCetMdPuym4HACeyxm17RAykMh1p0G12gWu7sRu1iEbmpKeOVS2ixIk15EStyG06zLB9oDcAMGxr1LaHyOyrzEEqMJp6wUhVxWx2FS0Br4Tcf8M7Eja8YmEAoQJE4CNZVHw5EEtyaVMMoOwPQhmgchGthIs49sj4xl-_HwTuOMP9ynAvsyfXfvLz3O6DaF8_eH79Xd1tvFllpbYlTYblNFxYd8yoENyH0e5sPrNLEC5YU5Nrk21Ld9OWTcbzarECj86f8Q_8Bg2&mkt=en-US&hosted=0&device_platform=Windows+10&nca=1&domain_hint=BSIB2CDev.onmicrosoft.com";
#endif
                    successMsg.Controls.Add(new LiteralControl("<h1>Whoops!</h1><p>We were unable to complete your registration because your account already exists. Click the buttons below to either log in or to reset your password. If you are still experiencing issues, please contact <a href='mailto:[email protected]'>[email protected]</a> for assistance.</p><a class='btn' href='/'>Login</a> <a class='btn' href='" + resetUrl + "'>Reset Password</a>"));
                    successMsg.Controls.Add(new LiteralControl("<style>.form .row {display:none !important;}.footer .btn {display:none;}</style>"));
                    successMsg.Controls.Add(new LiteralControl("<div class='error' style='display:none'><div>New User Details:</div><div>" + Newtonsoft.Json.JsonConvert.SerializeObject(user) + "</div></div>"));
                    signupFormPnl.Update();
                }
            }
        }