示例#1
0
 public int CreateGuestLogin(PostGuestLogin guestLogin)
 {
     lock (repositoryLock)
     {
         currentGuestLoginID += 1;
         guestLogins.Add(new GuestLogin {
             GuestLoginID = currentGuestLoginID,
             GuestName    = guestLogin.Guestname
         });
         return(currentGuestLoginID);
     }
 }
示例#2
0
        public async Task <IActionResult> GuestLoginAsync([FromBody] PostGuestLogin loginEntity)
        {
            var claimsPrincipal = await authenticationService.AuthenticateGuestAsync(loginEntity);

            if (claimsPrincipal == null)
            {
                return(NotFound());
            }

            await HttpContext.SignInAsync
            (
                Security.AuthenticationScheme, claimsPrincipal
            );

            return(Ok(claimsPrincipal.ApiGetUser()));
        }
示例#3
0
        public Task <ClaimsPrincipal> AuthenticateGuestAsync(PostGuestLogin guestLogin)
        {
            lock (authenticationServiceLock)
            {
                return(Task.Run(() => {
                    if (guestLoginRepository.GetGuestLogins(guestLogin.Guestname).Count > 0)
                    {
                        return null;
                    }

                    if (userRepository.GetUserLogin(guestLogin.Guestname) != null)
                    {
                        return null;
                    }

                    var guestID = guestLoginRepository.CreateGuestLogin(guestLogin);
                    return GetClaimsPrincipal(guestID, guestLogin.Guestname);
                }));
            }
        }