public ActiveDirectoryUtilisateurRepository(AntelopeEntities db) { var principalContext = new PrincipalContext(ContextType.Domain, ActiveDirectoryConfig.CurrentConfig.DomainName); _db = db; _principalContext = principalContext; }
public ActionQSERepository(AntelopeEntities db) { _db = db; }
public NonConformiteRepository(AntelopeEntities db) { _db = db; }
public DialogueSecuriteRepository(AntelopeEntities db) { _db = db; }
public ActiveDirectoryUtilisateurRepository(AntelopeEntities db, PrincipalContext principalContext) { _db = db; _principalContext = principalContext; }
public FicheSecuriteRepository(AntelopeEntities db) { _db = db; }
//Permet grâce : à l'Id d'une Personne, de retourner celle-ci, //Si l'ID n'est pas présent, on va la chercher dans l'Annuaire Applicatif (Table Personne) par son Nom/Prenom //Si la Personne n'est pas trouvée, on va la chercher sans l'Annuaire AD et la créer dans les Personnes //Si elle n'est pas trouvée non plus dans l'AD, on va la créer dans les Personnes, sans Guid. public Personne GetPersonneFromAllAnnuaireOrCreate(String Nom, String Prenom, Int32?PersonneId, AntelopeEntities db) { Personne personne; ActiveDirectoryUtilisateurDTO ResponsableActiveDirectoryUtilisateurDTO; if (PersonneId == null || PersonneId == 0) { personne = _personneRepository.GetPersonneByNomPrenom(Nom, Prenom); if (personne == null) { ResponsableActiveDirectoryUtilisateurDTO = _activeDirectoryUtilisateurRepository.GetActiveDirectoryUtilisateurByNomPrenom(Nom, Prenom); if (ResponsableActiveDirectoryUtilisateurDTO == null) { personne = new Personne() { Nom = Nom, Prenom = Prenom }; } else { personne = new Personne() { Nom = ResponsableActiveDirectoryUtilisateurDTO.Nom, Prenom = ResponsableActiveDirectoryUtilisateurDTO.Prenom, Guid = ResponsableActiveDirectoryUtilisateurDTO.Guid }; } } } else { personne = db.Personnes.FirstOrDefault(p => p.PersonneId == PersonneId); } return(personne); }
public PersonneAnnuaireService(AntelopeEntities db) { _ficheSecuriteRepository = new FicheSecuriteRepository(); _personneRepository = new PersonneRepository(db); _activeDirectoryUtilisateurRepository = new ActiveDirectoryUtilisateurRepository(); }
public PersonneRepository(AntelopeEntities db) { _db = db; }
void Session_Start() { AntelopeEntities db = new AntelopeEntities(); //-_-_-_-_-_-Traitements pour HSE-_-_-_-_-_- Int16 HSERole = (Int16)HSERoleEnum.Visiteur; Int16 CurrentHSERole = (Int16)HSERoleEnum.Visiteur; var allADHSERoleMapped = from a in db.ADRoles where a.RoleType == "HSE" select a; var id = ClaimsPrincipal.Current.Identities.First(); //Seul contournement trouvé au fait que //Guid guid = (Guid)Membership.GetUser().ProviderUserKey; // Ne fonctionne pas (l'utilisateur est authentifié, mais pas loggué, on dirait...) // A refactor dans une méthode !!! string login = HttpContext.Current.User.Identity.Name; string domain = login.Substring(0, login.IndexOf('\\')); string userName = login.Substring(login.IndexOf('\\') + 1); DirectoryEntry domainEntry = new DirectoryEntry("LDAP://" + domain); DirectorySearcher searcher = new DirectorySearcher(domainEntry); searcher.Filter = string.Format("(&(objectCategory=person)(objectClass=user)(sAMAccountName={0}))", userName); SearchResult searchResult = searcher.FindOne(); DirectoryEntry entry = searchResult.GetDirectoryEntry(); Guid objectGuid = entry.Guid; System.Security.Principal.WindowsIdentity.GetCurrent(); Session["CurrentGuid"] = objectGuid; foreach (ADRole ADRole in allADHSERoleMapped) { Debug.WriteLine(ADRole.Name); string[] roles = Roles.GetRolesForUser(id.Name); if ((Roles.IsUserInRole(ADRole.Name.Replace(@"\\", @"\"))) || (ADRole.Name.Replace(@"\\", @"\") == login)) { Debug.WriteLine(ADRole.Name); HSERoleEnum RoleToAdd = (HSERoleEnum)Enum.Parse(typeof(HSERoleEnum), ADRole.RoleCode); //TODO : Renommer RoleCode en APPRoleCode !!! RoleType en APPRoleType if ((Int16)RoleToAdd < (Int16)HSERole) { HSERole = (Int16)RoleToAdd; CurrentHSERole = (Int16)RoleToAdd; } } } Session["HSERole"] = HSERole; // Dans le futur, l'utilisateur pourra choisir un role inferieur à celui auquel il a droit // Il faut donc utiliser CurrentHSERole dans les pages de l'appli. //Session["CurrentHSERole"] = Enum.GetName(typeof(HSERoleEnum), CurrentHSERole); Session["CurrentHSERole"] = CurrentHSERole; //-_-_-_-_-_-Traitements pour QSE-_-_-_-_-_- Int16 QSERole = (Int16)HSERoleEnum.Visiteur; Int16 CurrentQSERole = (Int16)HSERoleEnum.Visiteur; var allADQSERoleMapped = from a in db.ADRoles where a.RoleType == "QSE" select a; foreach (ADRole ADRole in allADQSERoleMapped) { Debug.WriteLine(ADRole.Name); //var id = ClaimsPrincipal.Current.Identities.First(); string[] roles = Roles.GetRolesForUser(id.Name); if (Roles.IsUserInRole(ADRole.Name.Replace(@"\\", @"\"))) { Debug.WriteLine(ADRole.Name); HSERoleEnum RoleToAdd = (HSERoleEnum)Enum.Parse(typeof(HSERoleEnum), ADRole.RoleCode); //TODO : Renommer RoleCode en APPRoleCode !!! RoleType en APPRoleType if ((Int16)RoleToAdd < (Int16)QSERole) { QSERole = (Int16)RoleToAdd; CurrentQSERole = (Int16)RoleToAdd; } } } Session["QSERole"] = QSERole; // Voir commentaire pour les rôles HSE Session["CurrentQSERole"] = CurrentQSERole; }
public AnnuaireRepository(AntelopeEntities db) { _db = db; }