Ejemplo n.º 1
0
        public async Task <ActionResult> DonateResources(int id)
        {
            ViewBag.IsAvailable = false;
            System.Security.Claims.ClaimsPrincipal currentUserClaims = this.User;
            var currentUser = await _userManager.GetUserAsync(currentUserClaims);

            int regionId     = (int)userRepo.FilteredGet().Where(x => x.Id == currentUser.Id).FirstOrDefault().RegionId;
            var resourceList = (from item in resourceRequestRepo.FilteredGet().Where(x => x.Id == id)
                                join requester in userRepo.FilteredGet() on item.UserId equals requester.Id
                                join resource in resourceRepo.FilteredGet() on item.ResourceId equals resource.Id
                                select new MemberResourceDonationListViewModel
            {
                Id = item.Id,
                RequesterName = requester.FirstName + " " + requester.LastName,
                PhoneNumber = requester.PhoneNumber,
                Status = GetRequestStatus(item.ResourceStatus),
                StatusId = item.ResourceStatus,
                TotalNeeded = item.TotalNeeded,
                Resource = resource.Name,
                ResourceId = resource.Id,
                ResourceDetails = item.RequestDetails
            }).FirstOrDefault();
            var availableResource = (auditRepo.FilteredGet().Where(x => x.RegionId == regionId && x.ResourceId == resourceList.ResourceId).FirstOrDefault() ?? new ResourceAudit());

            if (availableResource.TotalCountAvailable < resourceList.TotalNeeded)
            {
                ViewBag.IsAvailable = true;
            }
            return(View(resourceList));
        }
Ejemplo n.º 2
0
        public IActionResult PassTestQuestion(int id, int questionOrderId = 0)
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            string userId            = userIdenityManager.GetUserId(currentUser);
            bool   isNotAccessDenied = testResultManager.CheckIfTestForUserId(id, userId);

            if (!isNotAccessDenied)
            {
                return(View("AccessDenied"));
            }

            bool toFinishTest = testResultManager.CheckTestResultIsClosed(id);

            if (toFinishTest)
            {
                testResultManager.FinishTestResult(id);
                return(RedirectToAction("ShowResult", new { @id = id }));
            }

            GivenQuestionDTO model             = testResultManager.GetGivenQuestionByTestIdAndQuestionOrderId(id, questionOrderId);
            int questionsCount                 = testResultManager.GetByID(model.TestResultId).Questions.Count;
            TestQuestionViewModel testQuestion = new TestQuestionViewModel
            {
                Question             = model,
                CurrentQuestionOrder = questionOrderId,
                QuestionsCount       = questionsCount,
                GivenAnswers         = testResultManager.GetGivenAnswers(id),
                MaxTimeEnd           = testResultManager.GetMaxTimeEnd(id)
            };

            return(View(testQuestion));
        }
Ejemplo n.º 3
0
        public override async Task DeleteUserAsync(string localUserId, System.Security.Claims.ClaimsPrincipal adminUser)
        {
            // go through all the auth0 accounts and remove them from the system.
            var accounts = await _db.Auth0Users.Where(u => u.LocalUserId == localUserId).ToListAsync();

            var auth0Service = new Auth0Service();

            foreach (var account in accounts)
            {
                //remove from auth0
                if (Engine.Settings.Account.DeleteRemoteAccounts)
                {
                    await auth0Service.DeleteUser(account.Id);
                }
                _db.Entry(account).State = EntityState.Deleted;
            }
            await _db.SaveChangesAsync();

            var user = await PrepareUserForDelete(localUserId, adminUser);

            _db.Auth0Users.Where(l => l.LocalUserId == localUserId).ForEach(f => _db.Entry(f).State = EntityState.Deleted);
            await _db.SaveChangesAsync();

            // now delete the user
            await base.DeleteUserAsync(localUserId, adminUser);
        }
Ejemplo n.º 4
0
        public static void SetEntityPrincipal(this MongoDbEntity entity, System.Security.Claims.ClaimsPrincipal user)
        {
            var code  = user.FindFirst(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier);
            var isNew = string.IsNullOrEmpty(entity.Id) || System.Guid.Empty.ToString() == entity.Id;
            var name  = user.FindFirst(c => c.Type == JwtClaimNamesConst.UseName);

            if (entity is MongoDbEntity esc)
            {
                if (isNew)
                {
                    esc.Id         = System.Guid.NewGuid().ToString();
                    esc.CreateAt   = DateTime.Now;
                    esc.CreateBy   = code?.Value;
                    esc.DataStatus = DataStatusEnum.Valid;
                }

                if (entity is MongoDbEntityWithCreateAndByName ewcn)
                {
                    ewcn.CreateByName = name?.Value;
                }

                if (entity is MongoDbEntityWithUpdate escu)
                {
                    escu.UpdateAt = DateTime.Now;
                    escu.UpdateBy = code?.Value;
                }

                if (entity is MongoDbEntityWithUpdateAndByName esun)
                {
                    esun.CreateByName = name?.Value;
                    esun.UpdateByName = name?.Value;
                }
            }
        }
        private string _getUserId(System.Security.Claims.ClaimsPrincipal user)

        {
            var userId = User.Claims.First(f => f.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value;

            return(userId);
        }
        public async Task UpdateConsentAsync(Models.Client client, System.Security.Claims.ClaimsPrincipal user, IEnumerable <string> scopes)
        {
            if (client.AllowRememberConsent)
            {
                using (var db = new CoreDbContext(_connectionString))
                {
                    var clientId = client.ClientId;
                    var subject  = user.GetSubjectId();

                    var consent = await db.Consents.FindAsync(subject, clientId);

                    if (scopes.Any())
                    {
                        if (consent == null)
                        {
                            consent = new Entities.Consent
                            {
                                ClientId = client.ClientId,
                                Subject  = user.GetSubjectId(),
                            };
                            db.Consents.Add(consent);
                        }

                        consent.Scopes = string.Join(" ", scopes.OrderBy(s => s).ToArray());
                    }
                    else if (consent != null)
                    {
                        db.Consents.Remove(consent);
                    }

                    db.SaveChanges();
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Logs unhandled exceptions when user context is available
        /// </summary>
        /// <param name="user"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        public async Task LogUnhandledException(System.Security.Claims.ClaimsPrincipal user, Exception ex)
        {
            VerboseError error = GetError(user, ex);

            error.source += " - Unhandled Exception";
            await _loggerQuery.LogError(error);
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> YourArt()
        {
            System.Security.Claims.ClaimsPrincipal currentUser = User;
            var             UserId       = _userManager.GetUserId(User);
            ApplicationUser LoggedInUser = await _userManager.FindByIdAsync(UserId);

            ArtOwners artowner = new ArtOwners();

            artowner.ArtOwner = LoggedInUser;

            // Query for ArtOwners in 'Art' table
            var owners = from o in _context.Art
                         where o.OwnerName.Equals(LoggedInUser.UserName)
                         select o;

            artowner.ArtPieces = owners;

            // Check if ArtOwner object is not NULL
            if (artowner != null)
            {
                return(View(artowner));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> PostPurchase([FromBody] Purchase Purchase)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var date = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Pacific Standard Time");

            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            var userId = _userManager.GetUserId(User);

            Purchase.CreatedByUserId = userId;
            Purchase.CreatedDate     = date;
            Purchase.PurchaseDate    = date;

            foreach (var detail in Purchase.PurchaseDetail)
            {
                detail.CreatedByUserId   = userId;
                detail.CreatedDate       = date;
                detail.PoNumber          = Purchase.PoNumber;
                detail.EstimatedDelivery = Purchase.DeliveryDate;
            }

            _context.Purchase.Add(Purchase);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPurchase", new { id = Purchase.PurchaseId }, Purchase));
        }
Ejemplo n.º 10
0
        public IActionResult Save(UserInfoFormViewModel uin)  // uin is short for user information
        {
            if (!ModelState.IsValid)
            {
                var countries = _context.Countries.ToList();
                var vm        = new UserInfoFormViewModel
                {
                    userinfo  = uin.userinfo,
                    countries = countries
                };
                return(View("UserInfoForm", vm));
            }
            if (uin.userinfo.Id == 0)  // ADD NEW USER INFO (UserInfos table in Db)
            {
                System.Security.Claims.ClaimsPrincipal currentUser = this.User;
                var Uid = userManager.GetUserId(User); // Get user id:

                uin.userinfo.ApplicationUserId = Uid;
                _context.UserInfos.Add(uin.userinfo);
            }
            else  // EDIT USER INFO
            {
                var uinfoInDb = _context.UserInfos.Single(p => p.Id == uin.userinfo.Id);
                // Mosh video 44 - manually set or use a DTO for higher level of security,
                // but since we’ve manually set these, DTO probably doesn't increase security.
                uinfoInDb.FirstName = uin.userinfo.FirstName;
                uinfoInDb.LastName  = uin.userinfo.LastName;
                uinfoInDb.SIN       = uin.userinfo.SIN;
                uinfoInDb.CountryId = uin.userinfo.CountryId;
                // do not edit the Id or the ApplicationUserId because they stay the same
            }
            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 11
0
        public ActionResult Edit()
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            var Uid = userManager.GetUserId(User); // Get application user id:
            // get the User Info (Profile) from the database's UserInfos table
            var uinfoInDb = _context.UserInfos.Single(i => i.ApplicationUserId == Uid);

            if (uinfoInDb == null)
            {
                return(View("Error")); // change this, but leave it for now.
            }
            var ui = new UserInfo
            {
                Id        = uinfoInDb.Id,
                FirstName = uinfoInDb.FirstName,
                LastName  = uinfoInDb.LastName,
                SIN       = uinfoInDb.SIN,
                CountryId = uinfoInDb.CountryId
                            // No need to pass ApplicationUserId out to user because in the Save() action
                            // we lookup the project anyway by project Id in Profiles table and then we
                            // have the ApplicationUserId. It won't change. User cannot edit that. Security.
            };
            var countries = _context.Countries.ToList();
            var vm        = new UserInfoFormViewModel
            {
                userinfo  = ui,
                countries = countries
            };

            return(View("UserInfoForm", vm));
        }
Ejemplo n.º 12
0
        public ActionResult Index()
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            bool     IsAdmin = currentUser.IsInRole("Admin"); // might use this in future
            var      Uid     = userManager.GetUserId(User);   // Get user id:
            UserInfo usrinfo = _context.UserInfos.SingleOrDefault(p => p.ApplicationUserId == Uid);

            if (usrinfo != null)
            {
                //
                var countries = _context.Countries.ToList();
                var vm        = new UserInfoFormViewModel
                {
                    userinfo  = usrinfo,
                    countries = countries
                };
                return(View("Welcome", vm));
            }
            else
            {
                // the user needs to Create a UserInfo profile
                var ui        = new UserInfo {
                    //ApplicationUserId = Uid
                };
                var countries = _context.Countries.ToList();
                var vm        = new UserInfoFormViewModel
                {
                    userinfo  = ui,
                    countries = countries
                };
                return(View("UserInfoForm", vm));
            }
        }
Ejemplo n.º 13
0
        public ClaimsManager(System.Security.Claims.ClaimsPrincipal user)
        {
            _claimsDict = new Dictionary <string, string>();

            user.Claims.ToList()
            .ForEach(_ => _claimsDict.Add(_.Type, _.Value));
        }
Ejemplo n.º 14
0
 public OrganizationFilteredUserRepository(
     GraphServiceClient client,
     System.Security.Claims.ClaimsPrincipal user,
     IOptions <OrganizationOptions> options
     ) : base(client, user, options)
 {
 }
Ejemplo n.º 15
0
        public async Task <IActionResult> RequestLease(int?id)
        {
            System.Security.Claims.ClaimsPrincipal currentUser = User;
            var             UserId       = _userManager.GetUserId(currentUser);
            ApplicationUser LoggedInUser = await _userManager.FindByIdAsync(UserId);

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

            var art = await _context.Art
                      .FirstOrDefaultAsync(m => m.Id == id);

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

            if (art.OwnerName == LoggedInUser.UserName)
            {
                _notyf.Error("You cannot Lease your own Artpiece!");
                return(View("Lease", art));
            }
            else
            {
                return(View(art));
            }
        }
        public SearchResponse GetFilesPage(System.Security.Claims.ClaimsPrincipal user, string pageToken)
        {
            var service     = GoogleDriveService.GetDriveService(user);
            var listRequest = service.Files.List();

            listRequest.PageSize = 25;
            listRequest.Fields   = "nextPageToken, files(id, name, webViewLink)";
            listRequest.Q        =
                "mimeType contains 'spreadsheet'";
            string previousPageToken = null;

            if (!string.IsNullOrWhiteSpace(pageToken))
            {
                previousPageToken     = listRequest.PageToken;
                listRequest.PageToken = pageToken;
            }
            // List files.
            var listResponse  = listRequest.Execute();
            var files         = listResponse.Files.ToList();
            var nextPageToken = listResponse.NextPageToken;

            return(new SearchResponse {
                Files = files, NextPageToken = nextPageToken, PreviousPageToken = previousPageToken
            });
        }
Ejemplo n.º 17
0
        public async Task <HttpResponseMessage> DoeZet([FromRoute] int id, [FromBody] JsonResultModel jsonResult)
        {
            Spel result = _context.Spel.SingleOrDefault(spel => spel.ID == id);

            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            var user = await _userManager.GetUserAsync(currentUser);

            foreach (var item in _context.User)
            {
                if (item.Spel == result && !result.Spelers.Contains(item))
                {
                    result.Spelers.Add(item);
                }
            }

            if (result.Spelers.Contains(user) && user.Kleur == ((Kleur)jsonResult.colour))
            {
                if (result.AandeBeurt == ((Kleur)jsonResult.colour))
                {
                    if (result.DoeZet(jsonResult.x, jsonResult.y))
                    {
                        _context.SaveChanges();
                        return(new HttpResponseMessage(HttpStatusCode.Accepted));
                    }
                    return(new HttpResponseMessage(HttpStatusCode.NotModified));
                }
                return(new HttpResponseMessage(HttpStatusCode.NotModified));
            }
            return(new HttpResponseMessage(HttpStatusCode.NotModified));
        }
Ejemplo n.º 18
0
        public static HtmlString BuildCommentList(int id, System.Security.Claims.ClaimsPrincipal claims)
        {
            string result = "", Image = "", Delete = "";

            foreach (var obj in VirtualBD.Comments)
            {
                if (obj.articleID == id)
                {
                    if (claims.IsInRole(Role.Admin) || claims.Identity.Name == obj.Creator)
                    {
                        Delete = $"<div class=\"col text-right\"> <button class=\"delete btn btn-danger\" id=\"{obj.ID}\" data=\"/Articles/deleteComment\">Удалить</button></div>";
                    }

                    if (obj.Img != null)
                    {
                        Image = $"<img src=\"{obj.Img}\" style=\"max-width:220px;\">";
                    }
                    else
                    {
                        Image = "";
                    }

                    result += $" <div class=\"row CommentTooArticle\" style=\"margin-top:25px; margin-bottom:10px; \"> <div class=\"col\">";
                    result += $" <div class=\"row border-bottom:1px solid black;\"> <div class=\"col-auto\"><img src = \"{@VirtualBD.Users.Find(x => x.Email == obj.Creator).Image}\" width=\"25\" height=\"25\"></div> <div class=\"col-auto\"> <a href=\"/Account/UserProfil?name={obj.Creator}\">{obj.Name} </a> </div> <div class=\"col-auto\">{obj.Time}</div></div>";
                    result += $"<div class=\"row\" style=\"margin-top: 15px;\"> <div class=\"col\"> {Image} <div>{obj.text}</div> </div> {Delete} </div>";
                    result += $"</div> </div> ";
                }
            }
            return(new HtmlString(result));
        }
        IPrincipal SetCurrentThreadPrincipal(ServiceSecurityContext securityContext, out bool isThreadPrincipalSet)
        {
            IPrincipal result    = null;
            IPrincipal principal = null;

            ClaimsPrincipal claimsPrincipal = OperationContext.Current.ClaimsPrincipal;

            if (principalPermissionMode == PrincipalPermissionMode.UseWindowsGroups)
            {
                principal = (claimsPrincipal is WindowsPrincipal) ? claimsPrincipal : GetWindowsPrincipal(securityContext);
            }
            else if (principalPermissionMode == PrincipalPermissionMode.Custom)
            {
                principal = GetCustomPrincipal(securityContext);
            }
            else if (principalPermissionMode == PrincipalPermissionMode.Always)
            {
                principal = claimsPrincipal ?? new ClaimsPrincipal(new ClaimsIdentity());
            }

            if (principal != null)
            {
                result = Thread.CurrentPrincipal;
                Thread.CurrentPrincipal = principal;
                isThreadPrincipalSet    = true;
            }
            else
            {
                isThreadPrincipalSet = false;
            }

            return(result);
        }
Ejemplo n.º 20
0
        public async Task <PagedList <MemeVM> > GetPagedFavouritesMemesAsync
            (int page, int itemsPerPage, System.Security.Claims.ClaimsPrincipal user)
        {
            string        userId     = user.Claims.First(c => c.Type == "UserID").Value;
            var           resList    = new PagedList <MemeVM>(); //zwracany model
            List <MemeVM> list       = new List <MemeVM>();      // PagedList.Items
            var           favourites = await _favouriteService.GetAllAsync(m => m.UserId == userId);

            var favs = await _favouriteService.GetAllFilteredIncludeAsync(m => m.UserId == userId,
                                                                          x => x.MemeRefId);

            foreach (var m in favourites)
            {
                list.Add(await MapMemeVM(await _repository.FindAsync(m.MemeRefId), user));
            }


            //available pages
            resList.PageCount = (int)Math.Ceiling(((double)list.Count() / itemsPerPage));

            list = list.Skip((page - 1) * itemsPerPage).Take(itemsPerPage).ToList();

            resList.ItemsPerPage = itemsPerPage;
            resList.Page         = page;
            resList.TotalItems   = list.Count();
            resList.Items        = list;
            return(resList);
        }
Ejemplo n.º 21
0
        // the constructor is accessed before a user claim can be supplied because the claims
        // manager is injected by the service provider. For this reason I used a seperate
        // method to set the object state with a claims principal object
        public void Init(System.Security.Claims.ClaimsPrincipal user)
        {
            user.Claims.ToList()
            .ForEach(_ => _claimsDict.Add(_.Type, _.Value));

            isInitialized = true;
        }
Ejemplo n.º 22
0
        public async Task <MemeVM> MapMemeVM(Meme entity, System.Security.Claims.ClaimsPrincipal user)
        {
            MemeVM vm = new MemeVM();

            vm.MemeId   = entity.MemeId;
            vm.Title    = entity.Title;
            vm.UserId   = entity.UserID;
            vm.UserName = entity.PageUser.UserName;
            vm.ByteHead = entity.ByteHead;
            vm.ByteImg  = entity.ImageByte;
            vm.Category = await _categoryService.GetCategoryVM(entity.CategoryId);

            vm.CreationDate = entity.CreationDate.ToString("dd/MM/yyyy");
            vm.Rate         = entity.Rate();
            vm.CommentCount = entity.CommentCount();
            vm.IsAccepted   = entity.IsAccepted;
            vm.IsArchived   = entity.IsArchived;
            vm.IsVoted      = false;
            vm.IsFavourite  = false;
            vm.VoteValue    = null;
            if (user != null && user.Identity.IsAuthenticated == true)
            {
                string userId = user.Claims.First(c => c.Type == "UserID").Value;
                vm.IsVoted     = entity.IsVoted(userId);
                vm.VoteValue   = entity.VoteValue(userId);
                vm.IsFavourite = entity.IsFavourite(userId);
            }
            return(vm);
        }
Ejemplo n.º 23
0
        public IActionResult Edit(int id)
        {
            using RDATContext context = new RDATContext();

            CreateDriverViewModel _model = new CreateDriverViewModel();

            // Get User Roles
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            _model.IsReadOnly = currentUser.IsInRole("ReadOnly");

            Driver _driver = context.Drivers.Where(d => d.Id == id).FirstOrDefault();

            ViewBag.CompanyName = _driver.DriverName;

            List <SelectListItem> states = context.States.OrderBy(s => s.StateName).Select(a =>
                                                                                           new SelectListItem
            {
                Value = a.Id.ToString(),
                Text  = a.StateName
            }).ToList();

            _model.States = states;

            _model.Driver = _driver;

            return(View(_model));
        }
Ejemplo n.º 24
0
        public async Task <PagedList <MemeVM> > GetPagedMemesAsync <TKey>(
            Expression <Func <Meme, bool> > filter,
            Expression <Func <Meme, TKey> > order,
            int page, int itemsPerPage,
            System.Security.Claims.ClaimsPrincipal user)
        {
            var model = await _repository.GetPagedAsync(filter, order, page, itemsPerPage,
                                                        x => x.Comments, x => x.Votes, x => x.Favourites, x => x.PageUser, x => x.Category);

            var VM = new PagedList <MemeVM>();

            VM.ItemsPerPage = model.ItemsPerPage;
            VM.Page         = model.Page;
            VM.PageCount    = model.PageCount;
            VM.TotalItems   = model.TotalItems;

            List <MemeVM> list = new List <MemeVM>();

            foreach (var m in model.Items)
            {
                list.Add(await MapMemeVM(m, user));
            }
            VM.Items = list;
            return(VM);
        }
Ejemplo n.º 25
0
        protected async Task <UserEntity> GetCurrentUser()
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            var user = await _userManager.GetUserAsync(currentUser);

            return(user);
        }
Ejemplo n.º 26
0
 public static EducationSecurityPrincipal MapFrom(AuthorizationContext filterContext)
 {
     if (filterContext == null)
     {
         throw new ArgumentNullException("filterContext");
     }
     try
     {
         System.Security.Claims.ClaimsPrincipal claimsPrincipal = filterContext.HttpContext.User as System.Security.Claims.ClaimsPrincipal;
         if ((claimsPrincipal == null || !filterContext.HttpContext.User.Identity.IsAuthenticated) ||
             (filterContext.ActionDescriptor.ActionName == "LogOff" && filterContext.ActionDescriptor.ControllerDescriptor.ControllerName == "Account"))
         {
             return(null);
         }
         else
         {
             return(CreateEducationSecurityPrincipal(filterContext, claimsPrincipal));
         }
     }
     catch (LicenseAgreementException)
     {
         filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary {
             { "action", "Index" }, { "controller", "Agreement" }
         });
         return(null);
     }
 }
Ejemplo n.º 27
0
        public IActionResult GiveAnswerForQuestion(int testResultId, int questionid, int questionOrderId, List <int> answerId)
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            string userId            = userIdenityManager.GetUserId(currentUser);
            bool   isNotAccessDenied = testResultManager.CheckIfTestForUserId(testResultId, userId);

            if (!isNotAccessDenied)
            {
                return(View("AccessDenied"));
            }

            bool toFinishTest = testResultManager.CheckTestResultIsClosed(testResultId);

            if (toFinishTest)
            {
                testResultManager.FinishTestResult(testResultId);
                return(RedirectToAction("ShowResult", new { @id = testResultId }));
            }
            testResultManager.SetAnswerToQuestion(testResultId, questionid, answerId);
            int questionsCount = testResultManager.GetByID(testResultId).Questions.Count;

            if (questionsCount == questionOrderId + 1)
            {
                testResultManager.FinishTestResult(testResultId);
                return(RedirectToAction("ShowResult", new { @id = testResultId }));
            }
            return(RedirectToAction("PassTestQuestion", new { @id = testResultId, @questionOrderId = questionOrderId + 1 }));
        }
    ClaimsPrincipal ISecurityTokenValidator.ValidateToken(string securityToken, TokenValidationParameters validationParameters, out SecurityToken validatedToken)
    {
        JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();

        // validatedToken = new JwtSecurityToken(securityToken);
        try
        {
            tokenHandler.ValidateToken(securityToken, validationParameters, out validatedToken);
            validatedToken = new JwtSecurityToken("jwtEncodedString");
        }
        catch (Exception ex)
        {
            System.Console.WriteLine(ex.Message);
            throw;
        }
        ClaimsPrincipal principal = null;

        // SecurityToken validToken = null;
        validatedToken = null;
        System.Collections.Generic.List <System.Security.Claims.Claim> ls =
            new System.Collections.Generic.List <System.Security.Claims.Claim>();
        ls.Add(
            new System.Security.Claims.Claim(
                System.Security.Claims.ClaimTypes.Name, "IcanHazUsr_éèêëïàáâäåãæóòôöõõúùûüñçø_ÉÈÊËÏÀÁÂÄÅÃÆÓÒÔÖÕÕÚÙÛÜÑÇØ 你好,世界 Привет\tмир"
                , System.Security.Claims.ClaimValueTypes.String
                )
            );
        //
        System.Security.Claims.ClaimsIdentity id = new System.Security.Claims.ClaimsIdentity("authenticationType");
        id.AddClaims(ls);
        principal = new System.Security.Claims.ClaimsPrincipal(id);
        return(principal);

        throw new NotImplementedException();
    }
Ejemplo n.º 29
0
        public async Task <ActionResult> Edit(MemebrResourceCollectionListViewMModel model)
        {
            System.Security.Claims.ClaimsPrincipal currentUserClaims = this.User;
            var currentUser = await _userManager.GetUserAsync(currentUserClaims);

            int regionId = (int)userRepo.FilteredGet().Where(x => x.Id == currentUser.Id).FirstOrDefault().RegionId;
            var data     = resourcCollectionRepo.FilteredGet().Where(x => x.Id == model.Id).FirstOrDefault();

            data.Status = model.StatusId;
            resourcCollectionRepo.Update(data);
            if (ResourceStatusEnum.Complete == (ResourceStatusEnum)model.StatusId)
            {
                var totalCollection = auditRepo.FilteredGet().Where(x => x.RegionId == regionId && x.ResourceId == model.ResourceId).FirstOrDefault();
                if (totalCollection == null)
                {
                    var regionalDetails = regionRepo.FilteredGet().Where(x => x.Id == regionId).Include(x => x.City).FirstOrDefault();

                    var newModel = new ResourceAudit
                    {
                        CityId              = (int)regionalDetails.CityId,
                        StateId             = (int)regionalDetails.City.StateId,
                        ResourceId          = model.ResourceId,
                        RegionId            = regionId,
                        TotalCountAvailable = model.TotalCollected
                    };
                    auditRepo.Insert(newModel);
                }
                else
                {
                    totalCollection.TotalCountAvailable = totalCollection.TotalCountAvailable + model.TotalCollected;
                    auditRepo.Update(totalCollection);
                }
            }
            return(RedirectToActionPermanent("CollectResources"));
        }
Ejemplo n.º 30
0
        public async Task <ActionResult> OAuthTokenCallback()
        {
            var ctx = GetOAuthContextCookie();
            var ip  = GetVisibleIdentityProviders().Single(x => x.ID == ctx.IdP);

            var oauth2 = new OAuth2Client(GetProviderTypeFromOAuthProfileTypes(ip.ProviderType.Value), ip.ClientID, ip.ClientSecret);
            var result = await oauth2.ProcessCallbackAsync();

            if (result.Error != null)
            {
                return(View("Error"));
            }

            var claims = result.Claims.ToList();

            string[] claimsToRemove = new string[]
            {
                "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider",
                ClaimTypes.AuthenticationInstant
            };
            foreach (var toRemove in claimsToRemove)
            {
                var tmp = claims.Find(x => x.Type == toRemove);
                if (tmp != null)
                {
                    claims.Remove(tmp);
                }
            }
            claims.Add(new Claim(Constants.Claims.IdentityProvider, ip.Name, ClaimValueTypes.String, Constants.InternalIssuer));
            var id = new ClaimsIdentity(claims, "OAuth");
            var cp = new ClaimsPrincipal(id);

            return(ProcessOAuthResponse(cp, ctx));
        }
        static public ClaimsPrincipal Convert( v1ClaimsPrincipal v1ClaimsPrincipal )
        {
            ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal();
            foreach ( v1ClaimsIdentity v1claimsIdentity in v1ClaimsPrincipal.Identities )
            {
                claimsPrincipal.AddIdentity( Convert( v1claimsIdentity ) );
            }

            return claimsPrincipal;
        }
 public UserHttpContext(string userKey)
 {
     var claim = new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.NameIdentifier, userKey);
     var claimIdentity = new System.Security.Claims.ClaimsIdentity(new List<System.Security.Claims.Claim> { claim }, "Test");
     var identity = new System.Security.Claims.ClaimsIdentity[] { claimIdentity };
     var principal = new System.Security.Claims.ClaimsPrincipal(identity);
     User = principal;
     _Request = MockHttpContextFactory.CreateRequest();
     _Response = MockHttpContextFactory.CreateResponse();
 }
        private ActionResult ProcessOAuthResponse(ClaimsPrincipal principal, Context context)
        {
            var message = new SignInRequestMessage(new Uri("http://foo"), context.Realm);
            message.Context = context.Wctx;

            // issue token and create ws-fed response
            var wsFedResponse = FederatedPassiveSecurityTokenServiceOperations.ProcessSignInRequest(
                message,
                principal,
                TokenServiceConfiguration.Current.CreateSecurityTokenService());

            // set cookie for single-sign-out
            new SignInSessionsManager(HttpContext, _cookieName, ConfigurationRepository.Global.MaximumTokenLifetime)
                .SetEndpoint(context.WsFedEndpoint);

            return new WSFederationResult(wsFedResponse, requireSsl: ConfigurationRepository.WSFederation.RequireSslForReplyTo);
        }
        public async Task<ActionResult> OAuthTokenCallback()
        {
            var ctx = GetOAuthContextCookie();
            var ip = GetVisibleIdentityProviders().Single(x => x.ID == ctx.IdP);

            var oauth2 = new OAuth2Client(GetProviderTypeFromOAuthProfileTypes(ip.ProviderType.Value), ip.ClientID, ip.ClientSecret);
            var result = await oauth2.ProcessCallbackAsync();
            if (result.Error != null) return View("Error");

            var claims = result.Claims.ToList();
            string[] claimsToRemove = new string[]
            {
                "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider",
                ClaimTypes.AuthenticationInstant
            };
            foreach (var toRemove in claimsToRemove)
            {
                var tmp = claims.Find(x => x.Type == toRemove);
                if (tmp != null) claims.Remove(tmp);
            }
            claims.Add(new Claim(Constants.Claims.IdentityProvider, ip.Name, ClaimValueTypes.String, Constants.InternalIssuer));
            var id = new ClaimsIdentity(claims, "OAuth");
            var cp = new ClaimsPrincipal(id);
            return ProcessOAuthResponse(cp, ctx);
        }