Forráskód Böngészése

Merge branch 'develop'

emmanuel.pheulpin 8 éve
szülő
commit
c014449eb2

+ 2 - 0
Web/CG67.FicheCollege.Web/CG67.FicheCollege.Web.csproj

@@ -56,6 +56,8 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="System.Data.OracleClient" />
+    <Reference Include="System.DirectoryServices" />
+    <Reference Include="System.DirectoryServices.AccountManagement" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.Web" />
     <Reference Include="System.Web.ApplicationServices" />

+ 7 - 0
Web/CG67.FicheCollege.Web/FicheCollege.aspx

@@ -15,6 +15,13 @@
         _gaq.push(['_setDomainName', '.cg67.fr']);
         _gaq.push(['_trackPageview']);
 
+        _gaq.push(['_setCustomVar',
+      1,                   // This custom var is set to slot #1.  Required parameter.
+      'Visitor',     // The name acts as a kind of category for the user activity.  Required parameter.
+      '<%=user%>',               // This value of the custom variable.  Required parameter.
+      2                    // Sets the scope to session-level.  Optional parameter.
+        ]);
+
         (function () {
             var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
             ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';

+ 59 - 6
Web/CG67.FicheCollege.Web/FicheCollege.aspx.cs

@@ -14,11 +14,17 @@ using System.Xml;
 using CG67.FicheCollege.Service;
 using CG67.FicheCollege.Domaine;
 using System.Collections.Generic;
+using System.DirectoryServices;
+using System.Linq;
+using System.Text.RegularExpressions;
+//using System.DirectoryServices.AccountManagement;
 
 namespace CG67.FicheCollege
 {
     public partial class FicheCollege : System.Web.UI.Page
     {
+        public string user;
+       
         protected void Page_Load(object sender, EventArgs e)
         {
             //Intialisation des paramètres
@@ -26,27 +32,74 @@ namespace CG67.FicheCollege
             int annee = int.Parse(ConfigurationManager.AppSettings["AnneeEnCours"]);
 
             HttpContext.Current.Session["Annee"] = annee;
+
             HttpContext.Current.Session["AnneeMoins1"] = annee - 1;
+
             HttpContext.Current.Session["RNE"] = Request["RNE"];
+            
+            string domain = "DC=cg67,DC=fr";
+        
+            //string sUser = ConfigurationManager.AppSettings["USER-LDAP"];
+
+            //string sMdp = ConfigurationManager.AppSettings["MDP-LDAP"];
+            
+            using (var rootEntry = new DirectoryEntry("LDAP://CG67/" + domain, null, null, AuthenticationTypes.Secure))
+            {
+                using (var directorySearcher = new DirectorySearcher(rootEntry, String.Format("(sAMAccountName={0})", HttpContext.Current.User.Identity.Name.Replace("CG67\\",""))))
+                {
+                    var searchResult = directorySearcher.FindOne();
+                    if (searchResult != null)
+                    {
+                        using (var userEntry = searchResult.GetDirectoryEntry())
+                        {
+                           string cnUser = userEntry.Properties["distinguishedName"].Value.ToString();
+
+                            List<string> Groups = new List<string>();
+
+                            Groups = cnUser.Split(new[] {"," } , StringSplitOptions.None).ToList();
+
+                            var rx = new Regex("OU=[AEFGHIJKLMP]{1}\\-[A-Z]{3,5}", RegexOptions.IgnoreCase);
+
+                            user = "AUTRE";
+                            
+                            var mission = Groups.Where(x => rx.IsMatch(x)).FirstOrDefault();
+
+                           
+
+                            if (!string.IsNullOrEmpty(mission)) user = mission.Replace("OU=","");
+
+                            if (user == "P-CAB")
+                            {
+                                var elu = Groups.Where(x => x.Contains("OU=P2-ELUS")).FirstOrDefault();
+
+                                if (!string.IsNullOrEmpty(elu)) user = elu.Replace("OU=", "");
+                            }
+                        }
+                    }
+                }
+            }
 
             //Traitement
             XmlDocument entete = new XmlDocument();
             entete.Load(Server.MapPath(@"~/xml/entete.xml"));
 
-            XmlNode xmlFicheCollege = ServiceFiche.GetFicheCollege(Session["RNE"].ToString(), int.Parse(Session["annee"].ToString()));
+            try
+            {
+                //modif car si code rne null provoque une erreur
 
-            this.Title = xmlFicheCollege.SelectSingleNode("college/Etablissement/NomCollegePourPresentation").InnerText;
-            xmlFicheCollege.SelectSingleNode("college").InnerXml += entete.DocumentElement.OuterXml;
+                XmlNode xmlFicheCollege = ServiceFiche.GetFicheCollege(Session["RNE"].ToString(), int.Parse(Session["annee"].ToString()));
 
-            this.Xml1.DocumentContent = xmlFicheCollege.OuterXml;
+                this.Title = xmlFicheCollege.SelectSingleNode("college/Etablissement/NomCollegePourPresentation").InnerText;
+                xmlFicheCollege.SelectSingleNode("college").InnerXml += entete.DocumentElement.OuterXml;
+
+                this.Xml1.DocumentContent = xmlFicheCollege.OuterXml;
 
-            try
-            {
                 this.DataBind();
             }
             catch (NullReferenceException nre)
             {
                 Console.WriteLine("Erreur de pointeur : null", nre.Message);
+                //Response.Redirect("/");
             }
 
         }

+ 5 - 0
Web/CG67.FicheCollege.Web/Web.config

@@ -20,6 +20,11 @@
     <add key="ImpersonationUser" value="service.college"/>
     <add key="ImpersonationPassword" value="2sr72297rN7BzX8QB48t"/>
     <add key="ImpersonationDomain" value="cg67"/>
+    <!-- Configuration de l'accès LDAP -->
+    <add key="USER-LDAP" value="lecturead" />
+    <add key="MDP-LDAP" value="Adlecture!" />
+
+
   </appSettings>
   <system.web>
     <httpHandlers>