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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); } }
//[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)); }
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)); }
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(); }
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)); }
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)); }
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)); }
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); }
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); }
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); }
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); }
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); }
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)); }
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)); }
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); }
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)); }
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)); } }
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); }
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); }
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; }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { return(View(model)); }
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); }
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())); }
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")); } }
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")); }
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()); }
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); }
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)); }
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); }
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")); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { throw new NotImplementedException(); }
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)); }