Пример #1
0
        public async Task <IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var info = await Authentication.GetExternalLoginInfoAsync();

            if (info == null)
            {
                return(InternalServerError());
            }

            var user = new FarmerUser()
            {
                UserName = model.Email, Email = model.Email
            };

            IdentityResult result = await UserManager.CreateAsync(user);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            result = await UserManager.AddLoginAsync(user.Id, info.Login);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }
            return(Ok());
        }
Пример #2
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var        userManager = context.OwinContext.GetUserManager <ApplicationUserManager>();
            FarmerUser user        = await userManager.FindAsync(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("invalid_grant", "The user name or password is incorrect.");
                return;
            }

            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager,
                                                                                OAuthDefaults.AuthenticationType);

            ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager,
                                                                                  CookieAuthenticationDefaults.AuthenticationType);

            var claim = new Claim(ClaimTypes.Role, "User");

            oAuthIdentity.AddClaim(claim);
            cookiesIdentity.AddClaim(claim);

            if (user.Email.Equals("*****@*****.**"))
            {
                oAuthIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));
                cookiesIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));
            }

            AuthenticationProperties properties = CreateProperties(user.UserName);
            AuthenticationTicket     ticket     = new AuthenticationTicket(oAuthIdentity, properties);

            context.Validated(ticket);
            context.Request.Context.Authentication.SignIn(cookiesIdentity);
        }
Пример #3
0
        public IActionResult Delete(FarmerUser farmer)
        {
            if (farmer.Id <= 0)
            {
                throw new Exception("Silme işlemi yapabilmek için lütfen kullanıcı Id değerini gönderiniz");
            }

            _userService.Delete(farmer);
            return(Ok());
        }
Пример #4
0
        public async Task <IHttpActionResult> GetExternalLogin(string provider, string error = null)
        {
            if (error != null)
            {
                return(Redirect(Url.Content("~/") + "#error=" + Uri.EscapeDataString(error)));
            }

            if (!User.Identity.IsAuthenticated)
            {
                return(new ChallengeResult(provider, this));
            }

            ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);

            if (externalLogin == null)
            {
                return(InternalServerError());
            }

            if (externalLogin.LoginProvider != provider)
            {
                Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie);
                return(new ChallengeResult(provider, this));
            }

            FarmerUser user = await UserManager.FindAsync(new UserLoginInfo(externalLogin.LoginProvider,
                                                                            externalLogin.ProviderKey));

            var hasRegistered = user != null;

            if (hasRegistered)
            {
                Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie);

                ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(UserManager,
                                                                                    OAuthDefaults.AuthenticationType);

                ClaimsIdentity cookieIdentity = await user.GenerateUserIdentityAsync(UserManager,
                                                                                     CookieAuthenticationDefaults.AuthenticationType);

                AuthenticationProperties properties = ApplicationOAuthProvider.CreateProperties(user.UserName);
                Authentication.SignIn(properties, oAuthIdentity, cookieIdentity);
            }
            else
            {
                IEnumerable <Claim> claims   = externalLogin.GetClaims();
                ClaimsIdentity      identity = new ClaimsIdentity(claims, OAuthDefaults.AuthenticationType);
                Authentication.SignIn(identity);
            }

            return(Ok());
        }
Пример #5
0
        public async Task <IActionResult> UserRegister(LoginModel loginModel, IFormFile file)
        {
            if (loginModel != null)
            {
                var newUser = new FarmerUser()
                {
                    Name        = loginModel.Name,
                    Surname     = loginModel.Surname,
                    Email       = loginModel.Email,
                    Address     = loginModel.Address,
                    Password    = loginModel.Password,
                    PhoneNumber = loginModel.PhoneNumber,
                    RecordData  = DateTime.Now.ToShortDateString().ToString(),
                    UserType    = loginModel.UserType,
                    UserState   = true //kullanıcı kayıt oldugunda durumu true olsun
                };

                if (file != null)
                {
                    var incerrectImage = Path.GetExtension(file.FileName);
                    if (incerrectImage == ".jpg" || incerrectImage == ".jpeg" || incerrectImage == ".png" || incerrectImage == ".bmp" || incerrectImage == ".gif" || incerrectImage == ".tiff")
                    {
                        Random rastgele = new Random();
                        string harfler  = "ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZabcçdefgğhıijklmnoöprsştuüvyz";
                        string uret     = "";
                        for (int i = 0; i < 6; i++)
                        {
                            uret += harfler[rastgele.Next(harfler.Length)];
                        }

                        newUser.ImageURL = uret + ".jpg";
                        var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\img\\CustomerImages", uret + ".jpg");

                        using (var stream = new FileStream(path, FileMode.Create))
                        {
                            await file.CopyToAsync(stream).ConfigureAwait(false);
                        }
                    }
                    else
                    {
                        ViewBag.IncerrectImageExtension = "Hata !!! Desteklenmeyen dosya uzantısı yüklemeye çalıştınız lütfen yükleyeceginiz dosyanın uzantısının \"jpg, png, jpeg, tiff, bmp\" oldugundan emin olunuz...";
                        return(View());
                    }
                }
                _userService.Create(newUser);

                return(View("UserLogin"));
            }

            return(View());
        }
Пример #6
0
        public async Task <ManageInfoViewModel> GetManageInfo(string returnUrl, bool generateState = false)
        {
            FarmerUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId <int>());

            if (user == null)
            {
                return(null);
            }

            List <UserLoginInfoViewModel> logins = new List <UserLoginInfoViewModel>();

            foreach (ApplicationUserLogin linkedAccount in user.Logins)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = linkedAccount.LoginProvider,
                    ProviderKey   = linkedAccount.ProviderKey
                });
            }

            if (user.PasswordHash != null)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = LocalLoginProvider,
                    ProviderKey   = user.UserName,
                });
            }

            return(new ManageInfoViewModel
            {
                LocalLoginProvider = LocalLoginProvider,
                Email = user.UserName,
                Logins = logins,
                ExternalLoginProviders = GetExternalLogins(returnUrl, generateState)
            });
        }
Пример #7
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new FarmerUser()
            {
                UserName = model.Email,
                Email    = model.Email,
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            await SendActivationEmail(model.Email, model.Password);

            return(Ok(user.Id));
        }
Пример #8
0
        public IActionResult FindByEmail(FarmerUser user)
        {
            string email = user.Email;

            return(Ok(_userService.FindByEmail(email)));
        }
Пример #9
0
 public IActionResult Create(FarmerUser farmer)
 {
     _userService.Create(farmer);
     return(Ok());
 }