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)); }
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)); }
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); }
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(); } } }
/// <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); }
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")); } }
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)); }
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")); }
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)); }
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)); } }
public ClaimsManager(System.Security.Claims.ClaimsPrincipal user) { _claimsDict = new Dictionary <string, string>(); user.Claims.ToList() .ForEach(_ => _claimsDict.Add(_.Type, _.Value)); }
public OrganizationFilteredUserRepository( GraphServiceClient client, System.Security.Claims.ClaimsPrincipal user, IOptions <OrganizationOptions> options ) : base(client, user, options) { }
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 }); }
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)); }
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); }
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); }
// 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; }
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); }
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)); }
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); }
protected async Task <UserEntity> GetCurrentUser() { System.Security.Claims.ClaimsPrincipal currentUser = this.User; var user = await _userManager.GetUserAsync(currentUser); return(user); }
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); } }
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(); }
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")); }
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); }