コード例 #1
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #2
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insertar un nuevo usuario en la base de datos
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Comprobar si el usuario ya existe
                    if (user == null)
                    {
                        // Insertar el nombre en la tabla de perfiles
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "El nombre de usuario ya existe. Escriba un nombre de usuario diferente.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #3
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // 將新使用者插入資料庫
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // 檢查使用者是否存在
                    if (user == null)
                    {
                        // 將名稱插入設定檔表格
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "使用者名稱已經存在。請輸入不同的使用者名稱。");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #4
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insérer un nouvel utilisateur dans la base de données
                using (PlannrContext db = new PlannrContext())
                {
                    Personne user = db.Personnes.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Vérifier si l'utilisateur n'existe pas déjà
                    if (user == null)
                    {
                        // Insérer le nom dans la table des profils
                        db.Personnes.Add(new Personne {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "Le nom d'utilisateur existe déjà. Entrez un nom d'utilisateur différent.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #5
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Добавление нового пользователя в базу данных
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Проверка наличия пользователя в базе данных
                    if (user == null)
                    {
                        // Добавление имени в таблицу профиля
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "Имя пользователя уже существует. Введите другое имя пользователя.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #6
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider;
            string providerUserId;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Добавление нового пользователя в базу данных
                using (var db = new UsersContext())
                {
                    UserProfile user =
                        db.UserProfiles.FirstOrDefault(
                            u => string.Equals(u.UserName, model.UserName, StringComparison.CurrentCultureIgnoreCase));
                    // Проверка наличия пользователя в базе данных
                    if (user == null)
                    {
                        // Добавление имени в таблицу профиля
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }

                    ModelState.AddModelError("UserName", Resources.UserNameNotExists);
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #7
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated ||
                !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // 将新用户插入到数据库
                using (var db = new UsersContext())
                {
                    UserProfile user =
                        db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // 检查用户是否已存在
                    if (user == null)
                    {
                        // 将名称插入到配置文件表
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, false);

                        return(RedirectToLocal(returnUrl));
                    }
                    ModelState.AddModelError("UserName", "用户名已存在。请输入其他用户名。");
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #8
0
        public ActionResult ExternalLoginCallback(string returnUrl)
        {
            this.ViewBag.HideNavigationLinks = true;
            this.ViewBag.HideLoginSection    = true;

            AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(this.Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));

            if (!result.IsSuccessful)
            {
                return(this.RedirectToAction("ExternalLoginFailure"));
            }

            if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false))
            {
                return(this.RedirectToLocal(returnUrl));
            }

            if (this.User.Identity.IsAuthenticated)
            {
                // If the current user is logged in add the new account
                OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, this.User.Identity.Name);
                return(this.RedirectToLocal(returnUrl));
            }
            else
            {
                // User is new, ask for their desired membership name
                string loginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId);
                this.ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName;
                this.ViewBag.ReturnUrl           = returnUrl;
                var model = new RegisterExternalLoginModel
                {
                    UserName          = result.UserName,
                    ExternalLoginData = loginData,
                    FB_name           = result.ExtraData.ContainsKey("name") ? result.ExtraData["name"] : string.Empty,
                    FB_link           = result.ExtraData.ContainsKey("link") ? result.ExtraData["link"] : string.Empty,
                    GL_email          = result.ExtraData.ContainsKey("email") ? result.ExtraData["email"] : string.Empty
                };
                return(View("ExternalLoginConfirmation", model));
            }
        }
コード例 #9
0
        //[ValidateAntiForgeryToken]
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider;
            string providerUserId;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (var db = new EStudyBaseContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName, Email = "*****@*****.**"
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }

                    ModelState.AddModelError("UserName", "Bu kullanıcı adı ile daha önceden kayıt oluşturulmuş. Lütfen farklı bir kullanıcı adı giriniz.");
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #10
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                var user = this._userRepository.GetUserByUserName(model.UserName);

                // if does not have any user with this username
                if (user == null)
                {
                    _userRepository.CreateUser(
                        model.UserName,
                        model.UserName,
                        "".GetDefaultPassword(),
                        "".GetDefaultEmail(),
                        (int)Role.RegisterUser,
                        "".GetDefaultCreatedByUser());

                    OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                    OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                    return(RedirectToLocal(returnUrl));
                }

                this.ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #11
0
ファイル: AccountController.cs プロジェクト: ramkumar013/ECMS
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            //string provider = null;
            //string providerUserId = null;

            //if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            //{
            //    return RedirectToAction("Manage");
            //}

            //if (ModelState.IsValid)
            //{
            //    var userId = WebSecurity.GetUserId(model.UserName);
            //    if (userId == -1)
            //    {
            //        string str = ConfigurationManager.ConnectionStrings["mongodb"].ConnectionString;
            //        DefaultUserProfileService service = new DefaultUserProfileService(str);
            //        ECMSMember profile = new ECMSMember();
            //        profile.UserName = model.UserName;
            //        service.CreateProfile(profile);

            //            OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
            //            OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

            //            return RedirectToLocal(returnUrl);
            //        }
            //        else
            //        {
            //            ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
            //        }

            //}

            //ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            //ViewBag.ReturnUrl = returnUrl;
            //return View(model);
            throw new NotImplementedException();
        }
コード例 #12
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                Usuario usuario = Uow.Usuarios.Obtener(model.UserName.ToLower());
                // Check if user already exists
                if (usuario == null)
                {
                    // Insert name into the profile table
                    Uow.Usuarios.Agregar(new Usuario()
                    {
                        NombreUsuario = model.UserName
                    });
                    Uow.Commit();

                    OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                    OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                    return(RedirectToLocal(returnUrl));
                }
                else
                {
                    ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #13
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                var userId = WebSecurity.GetUserId(model.UserName);
                if (userId == -1)
                {
                    string str = ConfigurationManager.ConnectionStrings["mongodb"].ConnectionString;
                    DefaultUsersService service = new DefaultUsersService(str);
                    SampleUserProfile   profile = new SampleUserProfile();
                    profile.UserName = model.UserName;
                    service.Save(profile);

                    OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                    OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                    return(RedirectToLocal(returnUrl));
                }
                else
                {
                    ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #14
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                var user = _userService.Users.FirstOrDefault(x => x.Name.ToLower() == model.UserName.ToLower());

                if (user == null)
                {
                    _userService.AddUser(new User
                    {
                        Name = model.UserName
                    });

                    OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                    OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                    return(RedirectToLocal(returnUrl));
                }
                else
                {
                    ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #15
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (WebSecurity.CurrentUser.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage", "Account");
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        var userProfile = new UserProfile() { UserName = model.UserName };
                        db.UserProfiles.Add(userProfile);
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        var isLoggedIn = OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        if (!isLoggedIn)
                        {
                            throw new Exception("Login failed");
                        }

                        var secret = "";
                        if (provider == "MxClient")
                        {
                            secret = GetMxSecret(model);
                        }

                        var newToken = new OAuthToken()
                            {
                                Provider = provider,
                                ProviderUserId = providerUserId,
                                Token = model.AccessToken,
                                Secret = secret,
                                UserId = userProfile.UserId
                            };

                        db.OAuthTokens.Add(newToken);
                        var rows = db.SaveChanges();
                        Debug.WriteLine("Rows updated: " + rows);
                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #16
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                //using (UsersContext db = new UsersContext())
                //{
                //    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                //    // Check if user already exists
                //    if (user == null)
                //    {
                //        // Insert name into the profile table
                //        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                //        db.SaveChanges();

                //        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                //        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                //        return RedirectToLocal(returnUrl);
                //    }
                //    else
                //    {
                //        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                //    }
                //}

                using (SqlConnection pripojeni = new SqlConnection("Data Source=MASTAH-PC;Initial Catalog=PFTDB;Integrated Security=True"))
                {
                    SqlCommand prikaz = new SqlCommand();
                    pripojeni.Open();
                    prikaz.Connection = pripojeni;
                    prikaz.Parameters.AddWithValue("@name", "Beginner");
                    prikaz.CommandText = "SELECT name FROM Difficulty WHERE name = @name";
                    Debug.Write("select sestaven");
                    string email = (string)prikaz.ExecuteScalar();  // metoda vraci typ object - je potreba prevest na int
                    pripojeni.Close();
                    // Check if user already exists
                    if (email == null)
                    {
                        // Insert name into the profile table
                        Debug.Write(email + "DB je prazdna");

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        Debug.Write(email + "DB je naplnena");
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #17
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider;
            string providerUserId;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                var user = UserRepository.Get(u => u.UserName.ToLower() == model.UserName.ToLower()).FirstOrDefault();
                if (user != null)
                {
                    this.ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                }
                UserRepository.Add(new UserProfile { UserName = model.UserName });

                OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                return this.RedirectToLocal(returnUrl);
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #18
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // 将新用户插入到数据库
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // 检查用户是否已存在
                    if (user == null)
                    {
                        // 将名称插入到配置文件表
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "用户名已存在。请输入其他用户名。");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #19
0
ファイル: AccountController.cs プロジェクト: rtennys/Momo
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider;
            string providerUserId;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
                return RedirectToAction("Manage");

            if (ModelState.IsValid)
            {
                var result = _commandExecutor.Execute((AddUserCommand)model);

                if (result.AnyErrors())
                    ModelState.AddModelErrors(result);
                else
                {
                    _uow.Commit();

                    OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.Username);
                    OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: true);

                    return RedirectToLocal(returnUrl);
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #20
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            try
            {
                if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
                {
                    return(RedirectToAction("Manage"));
                }

                if (ModelState.IsValid)
                {
                    // Insert a new user into the database
                    using (UsersContext db = new UsersContext())
                    {
                        UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                        // Check if user already exists
                        if (user == null)
                        {
                            if (Session["provider"] != null)
                            {
                                if (Session["provider"].ToString().ToLower() == "linkedin" || Session["provider"].ToString().ToLower() == "googleplus" || Session["provider"].ToString().ToLower() == "facebook")
                                {
                                    db.UserProfiles.Add(new UserProfile {
                                        UserName = model.UserName, FirstName = model.FirstName, LastName = model.LastName, Provider = provider
                                    });
                                }
                                else
                                {
                                    // Insert name into the profile table
                                    db.UserProfiles.Add(new UserProfile {
                                        UserName = model.UserName, Provider = provider
                                    });
                                }
                            }
                            else
                            {
                                // Insert name into the profile table
                                db.UserProfiles.Add(new UserProfile {
                                    UserName = model.UserName, Provider = provider
                                });
                            }
                            db.SaveChanges();

                            OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                            OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                            return(RedirectToAction("Index", "Home"));
                        }
                        else
                        {
                            var oProvider = db.UserProfiles.Where(x => x.UserName.ToLower() == model.UserName.ToLower()).Select(x => x.Provider).FirstOrDefault();
                            if (oProvider == null)
                            {
                                ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                            }
                            else
                            {
                                ModelState.AddModelError("UserName", "User name already register using '" + oProvider.ToString() + "' provider.");
                            }
                        }
                    }
                }

                ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
                ViewBag.ReturnUrl           = returnUrl;
            }
            catch (Exception ex)
            {
                using (UsersContext db = new UsersContext())
                {
                    db.ErrorsLog.Add(new ErrorLog {
                        ExceptionMessage = ex.Message, ExceptionStackTrace = ex.StackTrace, ErrorLogDate = DateTime.Now.ToString()
                    });
                    db.SaveChanges();
                }
            }
            return(View(model));
        }
コード例 #21
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (WebSecurity.CurrentUser.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage", "Account"));
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        var userProfile = new UserProfile()
                        {
                            UserName = model.UserName
                        };
                        db.UserProfiles.Add(userProfile);
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        var isLoggedIn = OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        if (!isLoggedIn)
                        {
                            throw new Exception("Login failed");
                        }

                        var secret = "";
                        if (provider == "MxClient")
                        {
                            secret = GetMxSecret(model);
                        }

                        var newToken = new OAuthToken()
                        {
                            Provider       = provider,
                            ProviderUserId = providerUserId,
                            Token          = model.AccessToken,
                            Secret         = secret,
                            UserId         = userProfile.UserId
                        };


                        db.OAuthTokens.Add(newToken);
                        var rows = db.SaveChanges();
                        Debug.WriteLine("Rows updated: " + rows);
                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #22
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // 새 사용자를 데이터베이스에 삽입
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // 사용자가 이미 존재하는지 확인합니다.
                    if (user == null)
                    {
                        // 프로필 테이블에 이름 삽입
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "사용자 이름이 이미 있습니다. 다른 사용자 이름을 입력하십시오.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #23
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (MainDBEntities db = new MainDBEntities())
                {
                    user userEx = db.users.FirstOrDefault(u => u.email == model.UserName);
                    // Check if user already exists

                    if (userEx != null)
                    {
                        userEx.userName        = model.twitterName;
                        userEx.firstName       = model.firstName;
                        userEx.lastName        = model.lastName;
                        db.Entry(userEx).State = EntityState.Modified;
                        db.SaveChanges();
                        FormsAuthentication.SetAuthCookie(userEx.email, false);

                        return(RedirectToAction("List"));
                    }
                    if (userEx == null)
                    {
                        /////////////////////////////////////////

                        try
                        {
                            using (var df = new MainDBEntities())
                            {
                                var sysUser = df.users.Create();

                                sysUser.userId    = Guid.NewGuid();
                                sysUser.email     = model.UserName;
                                sysUser.password  = "******";
                                sysUser.userName  = model.twitterName;
                                sysUser.firstName = model.firstName;
                                sysUser.lastName  = model.lastName;

                                df.users.Add(sysUser);
                                df.SaveChanges();


                                //return RedirectToAction("List");
                                FormsAuthentication.SetAuthCookie(model.UserName, false);

                                return(RedirectToAction("List"));
                            }
                        }
                        catch
                        {
                            ModelState.AddModelError("UserName", "User name or twitter name already exists. Please enter a different user name or twitter name.");
                        }

                        /////////////////////////////////

                        // Insert name into the profile table
                        // db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        //   db.SaveChanges();

                        //OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        //OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        //return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #24
0
ファイル: AccountController.cs プロジェクト: jonantoine/gcr
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            if (CurrentUser.IsAuthenticated)
            {
                return RedirectToAction("Manage");
            }

            var result = userService.GetOAuthResult(model.ExternalLoginData);
            if (ModelState.IsValid)
            {
                if (!userService.UsernameExists(model.UserName))
                {
                    userService.CreateOAuthAccount(model.UserName, result.Provider, result.ProviderUserId);
                    userService.LoginOAuth(result.Provider, result.ProviderUserId);

                    return RedirectToLocal(returnUrl);
                }
                else
                {
                    ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                }
            }

            ViewBag.ProviderDisplayName = result.ProviderDisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
        public ActionResult ExternalLoginCallback(string returnUrl)
        {
            AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));

            if (!result.IsSuccessful)
            {
                return(RedirectToAction("ExternalLoginFailure"));
            }

            if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false))
            {
                return(RedirectToLocal(returnUrl));
            }

            if (User.Identity.IsAuthenticated)
            {
                // If the current user is logged in add the new account
                OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, User.Identity.Name);
                if (result.Provider == "facebook" || result.Provider == "google")
                {
                    using (UsersContext db = new UsersContext())
                    {
                        UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == User.Identity.Name);
                        if (user != null)
                        {
                            var oauthItem = db.OAuthMemberships.FirstOrDefault(x => x.Provider == result.Provider && x.ProviderUserId == result.ProviderUserId && x.UserId == user.UserId);
                            if (oauthItem != null)
                            {
                                oauthItem.Email = result.UserName;
                                db.SaveChanges();
                            }
                        }
                    }
                }
                return(RedirectToLocal(returnUrl));
            }
            else
            {
                string loginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId);
                ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName;
                ViewBag.ReturnUrl           = returnUrl;
                var model = new RegisterExternalLoginModel {
                    UserName = result.UserName, ExternalLoginData = loginData
                };
                switch (result.Provider)
                {
                case "facebook":
                case "google":
                {
                    model.Email    = result.UserName;
                    model.UserName = "";
                    break;
                }

                case "twitter":
                {
                    model.Email    = "";
                    model.UserName = result.UserName;
                    break;
                }

                default:
                    break;
                }
                return(View("ExternalLoginConfirmation", model));
            }
        }
コード例 #26
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insérer un nouvel utilisateur dans la base de données
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Vérifier si l'utilisateur n'existe pas déjà
                    if (user == null)
                    {
                        // Insérer le nom dans la table des profils
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "Le nom d'utilisateur existe déjà. Entrez un nom d'utilisateur différent.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #27
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                BoardUser user = userRepository.GetUserByEmail(model.UserName);
                // Check if user already exists
                if (user == null)
                {
                    // Insert name into the profile table
                    userRepository.Add(new BoardUser { Email = model.UserName });
                    userRepository.Save();

                    OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                    OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                    return RedirectToLocal(returnUrl);
                }
                else
                {
                    ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #28
0
        private string GetMxSecret(RegisterExternalLoginModel model)
        {
            var clientData = OAuthWebSecurity.GetOAuthClientData("MxClient");
            var extraData = clientData.ExtraData;

            if (extraData != null)
            {
                foreach (var pair in extraData)
                {
                    Debug.WriteLine(pair.Key + " - " + pair.Value);
                }
            }

            var mxClient = (MxClient)clientData.AuthenticationClient;
            var secret = mxClient.TokenManager.GetTokenSecret(model.AccessToken);
            return secret;
        }
コード例 #29
0
 public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
 {
     return(View(model));
 }
コード例 #30
0
ファイル: AccountController.cs プロジェクト: rtennys/Toph
        public ActionResult ExternalLoginCallback(string returnUrl)
        {
            var result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new {ReturnUrl = returnUrl}));
            if (!result.IsSuccessful)
                return RedirectToAction("ExternalLoginFailure");

            if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: true))
                return RedirectToLocal(returnUrl);

            if (User.Identity.IsAuthenticated)
            {
                // If the current user is logged in add the new account
                OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, User.Identity.Name);
                return RedirectToLocal(returnUrl);
            }

            // User is new, ask for their desired membership name
            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;

            var model = new RegisterExternalLoginModel
                        {
                            Username = ParseUsername(result.UserName),
                            ExternalLoginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId)
                        };

            return View("ExternalLoginConfirmation", model);
        }
コード例 #31
0
        public ActionResult Index(RegisterExternalLoginModel mReg, string Command, int id = 0)
        {
            if (Command == "MonthlyReport")
            {
                // get all user responses
                var responses = _db.Responses
                                .Where(w => w.QuestionnaireId == 1)
                                .Select(r => new
                {
                    userId           = r.UserId,
                    questionText     = r.QuestionText,
                    questionResponse = r.ResponseItem
                }).ToList();

                // get all user final levels
                var finalLevels = _db.UserLevels
                                  .Select(s => new
                {
                    userId             = s.UserId,
                    finalStepLevel     = s.FinalStepLevel,
                    finalStepLevelDate = s.FinalStepLevelDate
                }).ToList();

                // get distinct user ids
                var distinctIds = responses.Select(s => s.userId).Distinct();

                // create spreadsheet, add worksheet, name columns
                ExcelPackage pck = new ExcelPackage();
                var          ws1 = pck.Workbook.Worksheets.Add("Users");
                ws1.Cells[1, 1].Value  = "First Name";
                ws1.Cells[1, 2].Value  = "Last Name";
                ws1.Cells[1, 3].Value  = "EMail";
                ws1.Cells[1, 4].Value  = "Home Address";
                ws1.Cells[1, 5].Value  = "City";
                ws1.Cells[1, 6].Value  = "State";
                ws1.Cells[1, 7].Value  = "Zip";
                ws1.Cells[1, 8].Value  = "Highest Edu";
                ws1.Cells[1, 9].Value  = "EC Provider";
                ws1.Cells[1, 10].Value = "T/TA Provider";
                ws1.Cells[1, 11].Value = "Credentials";
                ws1.Cells[1, 12].Value = "Verified";
                ws1.Cells[1, 13].Value = "Final Level";

                // set spreadsheet start row
                var XLStartRow = 2;

                // set column list
                var columnList = new System.Collections.Generic.List <string>();
                columnList.Add("First Name");
                columnList.Add("Last Name");
                columnList.Add("EMail");
                columnList.Add("Home Address");
                columnList.Add("City");
                columnList.Add("State");
                columnList.Add("Zip");
                columnList.Add("Highest Level of Education");
                columnList.Add("Career Pathways");
                columnList.Add("TA Provider");

                // for each user create a row in spreadsheet
                foreach (var d_id in distinctIds)
                {
                    // fill first n columns of spreadsheet
                    for (int col = 0; col < columnList.Count; col++)
                    {
                        var temp = columnList[col];
                        if (responses.Any(x => x.userId == d_id && x.questionText.ToLower().Contains(columnList[col].ToString().ToLower())))
                        {
                            ws1.Cells[XLStartRow, col + 1].Value = responses.Where(x => x.userId == d_id && x.questionText.ToLower().Contains(columnList[col].ToString().ToLower())).FirstOrDefault().questionResponse;
                        }
                        else
                        {
                            ws1.Cells[XLStartRow, col + 1].Value = "NA";
                        }
                    }
                    XLStartRow = XLStartRow + 1;

                    // fill credentials column of spreadsheet
                    var credentialList = "";
                    if (responses.Any(a => a.userId == d_id && a.questionText.ToLower().Contains("credential") && a.questionText.ToLower().Contains("type")))
                    {
                        var credentials = responses.Where(c => c.userId == d_id && c.questionText.ToLower().Contains("credential") && c.questionText.ToLower().Contains("type"));
                        foreach (var c in credentials)
                        {
                            credentialList += c.questionResponse + ",";
                        }
                        // eliminate final comma
                        if (credentialList.Length > 1)
                        {
                            credentialList = credentialList.Substring(0, credentialList.Length - 1);
                        }
                    }
                    ws1.Cells[XLStartRow, 11].Value = credentialList;

                    // fill "verified" and "final level" columns of spreadsheet
                    if (finalLevels.Any(x => x.userId == d_id))
                    {
                        ws1.Cells[XLStartRow, 12].Value = "Yes";
                        ws1.Cells[XLStartRow, 13].Value = finalLevels.Where(x => x.userId == d_id).FirstOrDefault().finalStepLevel;
                    }
                    else
                    {
                        ws1.Cells[XLStartRow, 12].Value = "No";
                    }
                }

                // download spreadsheet
                var stream = new MemoryStream();
                pck.SaveAs(stream);
                string fileName    = "Monthly_Report.xlsx";
                string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                stream.Position = 0;
                return(File(stream, contentType, fileName));
            }

            if (Command == "ExportAllData")
            {
                var responses = _db.Responses
                                .Select(r => new
                {
                    userId           = r.UserId,
                    qCategoryId      = r.QCategoryId,
                    qCategoryName    = r.QCategoryName,
                    questionText     = r.QuestionText,
                    questionResponse = r.ResponseItem
                }).ToList();

                var userLevels = _db.UserLevels
                                 .Select(r => new
                {
                    userId         = r.UserId,
                    finalStepLevel = r.FinalStepLevel
                }).ToList();

                var verifications = _db.Verifications
                                    .Select(r => new
                {
                    userId        = r.UserId,
                    itemInfo      = r.ItemInfo,
                    itemStepLevel = r.ItemStepLevel,
                    itemverified  = r.ItemVerified
                }).ToList();

                ExcelPackage pck = new ExcelPackage();

                var ws1 = pck.Workbook.Worksheets.Add("Responses");
                ws1.Cells[1, 1].Value = "UserId";
                ws1.Cells[1, 2].Value = "QCategoryId";
                ws1.Cells[1, 3].Value = "QCategoryName";
                ws1.Cells[1, 4].Value = "QuestionText";
                ws1.Cells[1, 5].Value = "QuestionResponse";
                for (int x = 0; x < responses.Count; x++)
                {
                    ws1.Cells[x + 2, 1].Value = responses[x].userId;
                    ws1.Cells[x + 2, 2].Value = responses[x].qCategoryId;
                    ws1.Cells[x + 2, 3].Value = responses[x].qCategoryName;
                    ws1.Cells[x + 2, 4].Value = responses[x].questionText;
                    ws1.Cells[x + 2, 5].Value = responses[x].questionResponse;
                }

                var ws2 = pck.Workbook.Worksheets.Add("UserLevels");
                ws2.Cells[1, 1].Value = "UserId";
                ws2.Cells[1, 2].Value = "FinalStepLevel";
                for (int x = 0; x < userLevels.Count; x++)
                {
                    ws2.Cells[x + 2, 1].Value = userLevels[x].userId;
                    ws2.Cells[x + 2, 2].Value = userLevels[x].finalStepLevel;
                }

                var ws3 = pck.Workbook.Worksheets.Add("Verifications");
                ws3.Cells[1, 1].Value = "UserId";
                ws3.Cells[1, 2].Value = "ItemInfo";
                ws3.Cells[1, 3].Value = "ItemStepLevel";
                ws3.Cells[1, 4].Value = "ItemVerified";
                for (int x = 0; x < verifications.Count; x++)
                {
                    ws3.Cells[x + 2, 1].Value = verifications[x].userId;
                    ws3.Cells[x + 2, 2].Value = verifications[x].itemInfo;
                    ws3.Cells[x + 2, 3].Value = verifications[x].itemStepLevel;
                    ws3.Cells[x + 2, 4].Value = verifications[x].itemverified;
                }

                var stream = new MemoryStream();
                pck.SaveAs(stream);

                string fileName    = "myfilename.xlsx";
                string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

                stream.Position = 0;
                return(File(stream, contentType, fileName));
            }

            if (Command == "VerificationsReport")
            {
                var users   = new List <UserInfo>();
                var userIds = _db.Verifications.Select(x => x.UserId).Distinct().ToList();
                for (var i = 0; i < userIds.Count(); i++)
                {
                    var userInfo = new UserInfo {
                        UserId = userIds[i]
                    };
                    userInfo.VerifiedCount   = _db.Verifications.Count(x => x.UserId == userInfo.UserId && x.QuestionnaireId == 1 && x.ItemVerified);
                    userInfo.UnverifiedCount = _db.Verifications.Count(x => x.UserId == userInfo.UserId && x.QuestionnaireId == 1 && x.ItemVerified == false);

                    userInfo.Editable = !_db.Verifications.Any(
                        x => x.UserId == userInfo.UserId && x.QuestionnaireId == 1 && x.Editable == false);

                    var firstOrDefault = _udb.UserProfiles.FirstOrDefault(x => x.UserId == userInfo.UserId);
                    if (firstOrDefault != null)
                    {
                        userInfo.UserName = firstOrDefault.UserName;
                    }
                    var responses = _db.Responses.Where(x => x.UserId == userInfo.UserId && x.QCategoryName.ToUpper().Contains("PERSONAL"));

                    var orDefault = responses.FirstOrDefault(x => x.QuestionText.ToUpper().Contains("FIRST NAME"));
                    if (orDefault != null)
                    {
                        userInfo.FirstName = orDefault.ResponseItem;
                    }
                    var response = responses.FirstOrDefault(x => x.QuestionText.ToUpper().Contains("LAST NAME"));
                    if (response != null)
                    {
                        userInfo.LastName = response.ResponseItem;
                    }

                    users.Add(userInfo);
                }

                var usersVerified   = users.Where(x => x.UnverifiedCount == 0);
                var usersUnverified = users.Where(x => x.UnverifiedCount != 0);

                var userVerifications = new UserVerifications();
                userVerifications.UsersVerified   = usersVerified.ToList();
                userVerifications.UsersUnverified = usersUnverified.ToList();

                var tableHtml = "<html><head></head><body><table>";
                tableHtml += "<tr><td colspan=4><h1>User Verification Status</h1></td></tr>";
                tableHtml += "<tr><td colspan=4><h2>Unverified Users</h2></td></tr>";
                tableHtml += "<tr><th>First Name</th><th>Last Name</th><th>Username</th><th>Status</th></tr>";
                foreach (var user in usersUnverified)
                {
                    tableHtml += "<tr><td>" + user.FirstName + "</td>";
                    tableHtml += "<tr><td>" + user.LastName + "</td>";
                    tableHtml += "<tr><td>" + user.UserName + "</td>";
                    tableHtml += "<tr><td>" + user.VerifiedCount + "/" + user.UnverifiedCount + "</td>";
                }
                tableHtml += "<tr><td colspan=4><h2>Verified Users</h2></td></tr>";
                tableHtml += "<tr><th>First Name</th><th>Last Name</th><th>Username</th><th>Status</th></tr>";
                foreach (var user in usersVerified)
                {
                    tableHtml += "<tr><td>" + user.FirstName + "</td>";
                    tableHtml += "<tr><td>" + user.LastName + "</td>";
                    tableHtml += "<tr><td>" + user.UserName + "</td>";
                    tableHtml += "<tr><td>" + user.VerifiedCount + "/" + user.UnverifiedCount + "</td>";
                }
                tableHtml += "</table></body></html>";

                tableToPdf(this, new EventArgs(), tableHtml);
            }

            return(View(_db.AppSettings.ToList()));
        }
コード例 #32
0
        public ActionResult ExternalLoginCallback(string returnUrl)
        {
            try
            {
                int tmpUserID = -1;

                AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
                if (!result.IsSuccessful)
                {
                    TempData["Error"] = "Error description: " + result.Error + " " + result.IsSuccessful.ToString();
                    return(RedirectToAction("ExternalLoginFailure"));
                }

                if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false))
                {
                    //return RedirectToLocal(returnUrl);
                    tmpUserID = WebSecurity.GetUserId(result.UserName);
                }

                if (User.Identity.IsAuthenticated)
                {
                    // If the current user is logged in add the new account
                    OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, User.Identity.Name);
                    //return RedirectToLocal(returnUrl);
                    tmpUserID = WebSecurity.GetUserId(result.UserName);
                }
                else
                {
                    // User is new, ask for their desired membership name
                    string loginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId);
                    ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName;
                    ViewBag.ReturnUrl           = returnUrl;
                    //return View("ExternalLoginConfirmation", new RegisterExternalLoginModel { UserName = result.UserName, ExternalLoginData = loginData });

                    RegisterExternalLoginModel model = new RegisterExternalLoginModel {
                        UserName = result.UserName, Email = result.ExtraData["email"], FullName = result.ExtraData["name"], ExternalLoginData = loginData
                    };
                    string provider       = null;
                    string providerUserId = null;

                    if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
                    {
                        return(RedirectToAction("Manage"));
                    }

                    if (ModelState.IsValid)
                    {
                        //Insert a new user into the database
                        using (UsersContext db = new UsersContext())
                        {
                            UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                            // Check if user already exists
                            if (user == null)
                            {
                                // Insert name into the profile table
                                //GREGA HACKS -- > model.username v providerUserID
                                //db.UserProfiles.Add(new UserProfile { UserName = model.UserName, UserGuid = Guid.NewGuid(), FullName = model.UserName });
                                db.UserProfiles.Add(new UserProfile {
                                    UserName = model.UserName, UserGuid = Guid.NewGuid(), FullName = model.FullName, Email = model.Email
                                });
                                db.SaveChanges();

                                //GREGA HACKS -- > model.username v providerUserID
                                OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); //???model.Email???
                                                                                                                  //OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, providerUserId);

                                OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                                tmpUserID = WebSecurity.GetUserId(result.UserName);
                            }
                            else
                            {
                                ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                            }
                        }
                    }
                }

                List <FacebookFriend> friendsList  = FacebookDataHelper.GetFriends();
                IUserDataRepository   _repositoryU = new UserDataRepository();
                _repositoryU.AddFBFriends(result.UserName, friendsList);

                if (tmpUserID != -1)
                {
                    Guid id = Guid.Empty;
                    if (RouteData.Values["id"] != null)
                    {
                        Guid.TryParse(RouteData.Values["id"].ToString(), out id);
                    }

                    //UPDATEAMO BET
                    if (id != Guid.Empty)
                    {
                        IBetDataRepository _repositoryB = new BetDataRepository();

                        BetData bet = new BetData();
                        bet.Guid        = id;
                        bet.BetActionID = Convert.ToInt16(RouteData.Values["type"]);

                        if (bet.BetActionID == 115)
                        {
                            bet.User1ID = tmpUserID;
                        }
                        else
                        {
                            bet.User2ID = tmpUserID;
                        }

                        bet.BetStatusID = BetStatus.Accepted;  ///!!!!Request.QueryString["betStatus"].ToEnum<BetStatus>();
                        _repositoryB.Update(bet);

                        //ZAPIŠEMO HISTORY!!!
                        new EventData(bet.Guid, tmpUserID, bet.BetStatusID == BetStatus.Accepted ? 202 : 206).Add();

                        return(RedirectToAction("Index", "Dashboard", new { popup = "typeCredit" + bet.BetID }));
                    }

                    //return RedirectToAction("Index", "Bet");
                    return(RedirectToAction("Support-Me", "Bet"));
                }
                else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    return(View());
                }
            }
            catch (Exception e)
            {
                Neolab.Common.NeoException.Handle(e);
                return(RedirectToAction("Index", "Error"));
            }
        }
コード例 #33
0
        public ActionResult Download(RegisterExternalLoginModel mReg, string Command, int id = 0)
        {
            if (Command == "MS Word")
            {
                try
                {
                    var userGuid = new Guid(User.Identity.GetUserId()); //WebSecurity.GetUserId(User.Identity.Name);
                    var userId   = BitConverter.ToInt32(userGuid.ToByteArray(), 0);

                    var responses  = _db.Responses.Where(x => x.UserId == userId).OrderBy(x => x.Ordinal).ThenBy(x => x.SubOrdinal).ThenBy(x => x.QQOrd).ToList();
                    var categories = new List <string> {
                        "Personal Information", "Employment", "Education", "Coursework", "Certifications", "Licenses", "Credentials", "Training"
                    };
                    var fui       = new FormatUserInformation(responses, categories);
                    var formatted = fui.Format();
                    var ms        = MakeWordFile.CreateDocument(formatted);
                    var ms2       = new MemoryStream(ms.ToArray());


                    Spire.Doc.Document doc = new Spire.Doc.Document(ms2);

                    doc.SaveToFile("Portfolio.docx", Spire.Doc.FileFormat.Docx, System.Web.HttpContext.Current.Response, HttpContentType.Attachment);

                    //Response.Clear();
                    //Response.AddHeader("content-disposition", "attachment; filename=\"Portfolio.docx\"");
                    //Response.ContentType = "application/msword";
                    //ms2.WriteTo(Response.OutputStream);
                    //Response.End();
                }
                catch (Exception ex)
                { Response.Write(ex.Message); }
            }
            else if (Command == "Pdf")
            {
                try
                {
                    var userGuid = new Guid(User.Identity.GetUserId()); //WebSecurity.GetUserId(User.Identity.Name);
                    var userId   = BitConverter.ToInt32(userGuid.ToByteArray(), 0);

                    var responses  = _db.Responses.Where(x => x.UserId == userId).OrderBy(x => x.Ordinal).ThenBy(x => x.SubOrdinal).ThenBy(x => x.QQOrd).ToList();
                    var categories = new List <string> {
                        "Personal Information", "Employment", "Education", "Coursework", "Certifications", "Licenses", "Credentials", "Training"
                    };
                    var fui       = new FormatUserInformation(responses, categories);
                    var formatted = fui.Format();
                    var ms        = MakeWordFile.CreateDocument(formatted);
                    var ms2       = new MemoryStream(ms.ToArray());

                    Spire.Doc.Document doc = new Spire.Doc.Document(ms2);

                    doc.SaveToFile("Portfolio.pdf", Spire.Doc.FileFormat.PDF, System.Web.HttpContext.Current.Response, HttpContentType.Attachment);
                }
                catch (Exception ex)
                { Response.Write(ex.Message); }
            }
            else if (Command == "Certificate")
            {
                var userGuid  = new Guid(User.Identity.GetUserId());
                var userIdStr = User.Identity.GetUserId();
                var userId    = BitConverter.ToInt32(userGuid.ToByteArray(), 0);
                var user      = _udb.Users.FirstOrDefault(s => s.Id == userIdStr);

                UserLevel userLevel        = _db.UserLevels.Where(q => q.UserId == userId).First();
                var       certificateDate  = ((DateTime)userLevel.FinalStepLevelDate).ToString("d");
                var       certificateLevel = userLevel.FinalStepLevel;
                var       signature        = "Zelda Boyd";

                string firstName     = "";
                string lastName      = "";
                string middleInitial = "";

                if (user != null)
                {
                    if (user.FirstName != null && user.FirstName != "")
                    {
                        firstName = user.FirstName;
                    }
                    else
                    {
                        firstName = "FirstName";
                    }

                    if (user.LastName != null && user.LastName != "")
                    {
                        lastName = user.LastName;
                    }
                    else
                    {
                        lastName = "LastName";
                    }

                    if (user.MiddleInitial != null && user.MiddleInitial != "")
                    {
                        middleInitial = user.MiddleInitial;
                    }
                    else
                    {
                        middleInitial = "";
                    }
                }

                firstName     = user.FirstName;
                middleInitial = user.MiddleInitial;
                lastName      = user.LastName;

                string fullName = firstName + " " + (middleInitial != "" ? middleInitial + " " : "") + lastName;

                var appRoot = Request.PhysicalApplicationPath;
                var file    = appRoot + "Content\\VPDR_Certificate_10.docx";
                var newFile = appRoot + "Content\\VPDR_Certificate_" + lastName + "_" + firstName + ".docx";
                var newPdf  = appRoot + "Content\\VPDR_Certificate_" + lastName + "_" + firstName + ".pdf";

                Spire.Doc.Document doc = new Spire.Doc.Document();
                doc.LoadFromFile(file);
                doc.Replace("PROVIDER", fullName, true, true);
                doc.Replace("LEVEL", certificateLevel, true, true);
                doc.Replace("DATE", certificateDate, true, true);
                doc.Replace("SIGNATURE", signature, true, true);
                //doc.SaveToFile(newPdf, Spire.Doc.FileFormat.PDF);
                //doc.SaveToFile(newFile, Spire.Doc.FileFormat.Docx);

                var newPdfName = "VPDR_Certificate_" + lastName + "_" + firstName + ".pdf";
                doc.SaveToFile(newPdfName, Spire.Doc.FileFormat.PDF, System.Web.HttpContext.Current.Response, HttpContentType.Attachment);
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Download"));
        }
コード例 #34
0
        public ActionResult Download(RegisterExternalLoginModel mReg, string Command, int id = 0)
        {
            if (Command == "MS Word")
            {
                try
                {
                    var userId     = WebSecurity.GetUserId(User.Identity.Name);
                    var responses  = _db.Responses.Where(x => x.UserId == userId).OrderBy(x => x.Ordinal).ThenBy(x => x.SubOrdinal).ThenBy(x => x.QQOrd).ToList();
                    var categories = new List <string> {
                        "Personal Information", "Employment", "Education", "Coursework", "Certifications", "Licenses", "Credentials", "Training"
                    };
                    var fui       = new FormatUserInformation(responses, categories);
                    var formatted = fui.Format();
                    var ms        = MakeWordFile.CreateDocument(formatted);
                    var ms2       = new MemoryStream(ms.ToArray());

                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment; filename=\"Portfolio.docx\"");
                    Response.ContentType = "application/msword";
                    ms2.WriteTo(Response.OutputStream);
                    Response.End();
                }
                catch (Exception ex)
                { Response.Write(ex.Message); }
            }
            else if (Command == "Pdf")
            {
                try
                {
                    var userId     = WebSecurity.GetUserId(User.Identity.Name);
                    var responses  = _db.Responses.Where(x => x.UserId == userId).OrderBy(x => x.Ordinal).ThenBy(x => x.SubOrdinal).ThenBy(x => x.QQOrd).ToList();
                    var categories = new List <string> {
                        "Personal Information", "Employment", "Education", "Coursework", "Certifications", "Licenses", "Credentials", "Training"
                    };
                    var fui       = new FormatUserInformation(responses, categories);
                    var formatted = fui.Format();
                    var ms        = MakeWordFile.CreateDocument(formatted);
                    var ms2       = new MemoryStream(ms.ToArray());

                    Aspose.Words.Document doc = new Aspose.Words.Document(ms2);
                    var ms3 = new MemoryStream();
                    doc.Save(ms3, SaveFormat.Pdf);

                    Response.Clear();
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("content-disposition", "attachment; filename=\"Portfolio.pdf\"");

                    ms3.WriteTo(Response.OutputStream);
                    Response.End();
                }
                catch (Exception ex)
                { Response.Write(ex.Message); }
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            return(View());
        }
コード例 #35
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insertar un nuevo usuario en la base de datos
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Comprobar si el usuario ya existe
                    if (user == null)
                    {
                        // Insertar el nombre en la tabla de perfiles
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "El nombre de usuario ya existe. Escriba un nombre de usuario diferente.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #36
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        UserProfile newUser = db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        //
                        bool facebookVerified;

                        var     client   = new Facebook.FacebookClient(Session["facebooktoken"].ToString());
                        dynamic response = client.Get("me", new { fields = "verified" });
                        if (response.ContainsKey("verified"))
                        {
                            facebookVerified = response["verified"];
                        }
                        else
                        {
                            facebookVerified = false;
                        }

                        db.ExternalUsers.Add(new ExternalUserInformation
                        {
                            UserId   = newUser.UserId,
                            FullName = model.FullName,
                            Link     = model.Link,
                            Verified = facebookVerified
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }
コード例 #37
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
コード例 #38
0
        public ActionResult Index(RegisterExternalLoginModel mReg, string Command, int id = 0)
        {
            var users   = new List <UserInfo>();
            var userIds = _db.Verifications.Select(x => x.UserId).Distinct().ToList();

            for (var i = 0; i < userIds.Count(); i++)
            {
                var userInfo = new UserInfo {
                    UserId = userIds[i]
                };
                userInfo.VerifiedCount   = _db.Verifications.Count(x => x.UserId == userInfo.UserId && x.QuestionnaireId == 1 && x.ItemVerified);
                userInfo.UnverifiedCount = _db.Verifications.Count(x => x.UserId == userInfo.UserId && x.QuestionnaireId == 1 && x.ItemVerified == false);

                userInfo.Editable = !_db.Verifications.Any(
                    x => x.UserId == userInfo.UserId && x.QuestionnaireId == 1 && x.Editable == false);

                var firstOrDefault = _udb.UserProfiles.FirstOrDefault(x => x.UserId == userInfo.UserId);
                if (firstOrDefault != null)
                {
                    userInfo.UserName = firstOrDefault.UserName;
                }
                var responses = _db.Responses.Where(x => x.UserId == userInfo.UserId && x.QCategoryName.ToUpper().Contains("PERSONAL"));

                var orDefault = responses.FirstOrDefault(x => x.QuestionText.ToUpper().Contains("FIRST NAME"));
                if (orDefault != null)
                {
                    userInfo.FirstName = orDefault.ResponseItem;
                }
                var response = responses.FirstOrDefault(x => x.QuestionText.ToUpper().Contains("LAST NAME"));
                if (response != null)
                {
                    userInfo.LastName = response.ResponseItem;
                }

                users.Add(userInfo);
            }

            var usersVerified   = users.Where(x => x.UnverifiedCount == 0);
            var usersUnverified = users.Where(x => x.UnverifiedCount != 0);

            var userVerifications = new UserVerifications();

            userVerifications.UsersVerified   = usersVerified.ToList();
            userVerifications.UsersUnverified = usersUnverified.ToList();

            var tableHtml = "<html><head></head><body><table>";

            tableHtml += "<tr><td colspan=4><h1>User Verification Status</h1></td></tr>";
            tableHtml += "<tr><td colspan=4><h2>Unverified Users</h2></td></tr>";
            tableHtml += "<tr><th>First Name</th><th>Last Name</th><th>Username</th><th>Status</th></tr>";
            foreach (var user in usersUnverified)
            {
                tableHtml += "<tr><td>" + user.FirstName + "</td>";
                tableHtml += "<tr><td>" + user.LastName + "</td>";
                tableHtml += "<tr><td>" + user.UserName + "</td>";
                tableHtml += "<tr><td>" + user.VerifiedCount + "/" + user.UnverifiedCount + "</td>";
            }
            tableHtml += "<tr><td colspan=4><h2>Verified Users</h2></td></tr>";
            tableHtml += "<tr><th>First Name</th><th>Last Name</th><th>Username</th><th>Status</th></tr>";
            foreach (var user in usersVerified)
            {
                tableHtml += "<tr><td>" + user.FirstName + "</td>";
                tableHtml += "<tr><td>" + user.LastName + "</td>";
                tableHtml += "<tr><td>" + user.UserName + "</td>";
                tableHtml += "<tr><td>" + user.VerifiedCount + "/" + user.UnverifiedCount + "</td>";
            }
            tableHtml += "</table></body></html>";

            tableToPdf(this, new EventArgs(), tableHtml);
            return(RedirectToAction("Index"));
        }
コード例 #39
0
 public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
 {
     throw new NotImplementedException();
 }
コード例 #40
0
ファイル: AccountController.cs プロジェクト: msanj1/BOTFv2
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider       = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        UserProfile profile = db.UserProfiles.Add(new UserProfile {
                            UserName = model.UserName
                        });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);
                        //need to check to see if it is facebook or twitter
                        if (provider == "twitter")
                        {
                            if (Session["AccessToken"] != null && Session["AccessTokenSecret"] != null) //used to distinugish between facebook and twitter regisration
                            {
                                //"9kCMAgidv1NzN8TfMVgZw", "RimlGsenvejdoRlw0NSazYzXJBO6olF2IBMJcw11Uc"
                                //creating new tweetsharp service
                                TwitterService service = new TwitterService(Settings.Settings.TwitterConsumerKey, Settings.Settings.TwitterConsumerSecret, Session["AccessToken"].ToString(), Session["AccessTokenSecret"].ToString());
                                TwitterUser    me      = service.VerifyCredentials();
                                ContextDb      _db     = new ContextDb();
                                Models.User    temp    = new Models.User {
                                    UserId = profile.UserId, Email = model.Email, Image = me.ProfileImageUrl, Name = me.Name, RemainingProposals = 100, RemainingVotes = 100
                                };
                                temp = _db.User.Add(temp);
                                _db.SaveChanges();
                                CheckChanceState(temp.UserId);
                                DatabaseCallsApi _api = new DatabaseCallsApi();
                                _api.AddOrUpdateService(temp.UserId, "twitter", Session["AccessToken"].ToString(), Session["AccessTokenSecret"].ToString());
                                Session.Remove("AccessToken");
                                Session.Remove("AccessTokenSecret");
                            }
                        }
                        else
                        {
                            //setting new facebook service
                            FacebookAPI facebook     = new FacebookAPI(FacebookToken);
                            dynamic     facebookData = facebook.GetUsersData();
                            if (facebookData != null)
                            {
                                ContextDb _db = new ContextDb();

                                Models.User temp = new Models.User {
                                    UserId = profile.UserId, Email = facebookData.email.ToString(), Image = facebookData.picture["data"]["url"].ToString(), Name = facebookData.name.ToString(), RemainingProposals = 1, RemainingVotes = 3
                                };
                                temp = _db.User.Add(temp);
                                _db.SaveChanges();
                                CheckChanceState(temp.UserId);
                                DatabaseCallsApi _api = new DatabaseCallsApi();
                                _api.AddOrUpdateService(temp.UserId, Provider, FacebookToken);
                            }
                        }

                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl           = returnUrl;
            return(View(model));
        }