Celine.meneu 12 anni fa
parent
commit
8572edf141

+ 56 - 0
CG67.FicheCollege.root/CG67.FicheCollege/CG67.FicheCollege.Tools/CG67.FicheCollege.Tools.csproj

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{6B4DE9CB-C532-4501-B626-F51663EC4E17}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>CG67.FicheCollege.Tools</RootNamespace>
+    <AssemblyName>CG67.FicheCollege.Tools</AssemblyName>
+    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Impersonation.cs" />
+    <Compile Include="LogonProvider.cs" />
+    <Compile Include="LogonSessionType.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 10 - 0
CG67.FicheCollege.root/CG67.FicheCollege/CG67.FicheCollege.Tools/CG67.FicheCollege.Tools.csproj.vspscc

@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = "relative:CG67.FicheCollege.Tools"
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

+ 41 - 0
CG67.FicheCollege.root/CG67.FicheCollege/CG67.FicheCollege.Tools/Impersonation.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Web;
+using System.Runtime.InteropServices;
+
+
+namespace CG67.FicheCollege.Tools
+{
+    /// <summary>
+    /// Ensemble de méthodes pour gérer l'impersonification
+    /// </summary>
+    public static class Impersonation
+    {
+        /// <summary>
+        /// Permet de créer un jeton d'authentification
+        /// </summary>
+        /// <param name="principal">Le compte à utiliser</param>
+        /// <param name="authority">Le domaine du compte</param>
+        /// <param name="password">Le mot de passe</param>
+        /// <param name="logonType">Le type d'ouverture de session</param>
+        /// <param name="logonProvider">Le fournisseur de jeton</param>
+        /// <param name="token">Le jeton à récupérer</param>
+        /// <returns>Un booléen indiquant le résultat de l'opération</returns>
+        [DllImport("advapi32.dll", SetLastError = true)]
+        public static extern bool LogonUser(
+          string principal,
+          string authority,
+          string password,
+          LogonSessionType logonType,
+          LogonProvider logonProvider,
+          out IntPtr token);
+
+        /// <summary>
+        /// Ferme un handle sur un objet
+        /// </summary>
+        /// <param name="handle">Un handle valide pour ouvrir un objet</param>
+        /// <returns>Retourne un résultat différent de 0 en cas de réussite</returns>
+        [DllImport("kernel32.dll", SetLastError = true)]
+        public static extern bool CloseHandle(IntPtr handle);
+    }
+}

+ 13 - 0
CG67.FicheCollege.root/CG67.FicheCollege/CG67.FicheCollege.Tools/LogonProvider.cs

@@ -0,0 +1,13 @@
+namespace CG67.FicheCollege.Tools
+{
+    /// <summary>
+    /// Type de fournisseur d'authentification
+    /// </summary>
+    public enum LogonProvider : uint
+    {
+        Default = 0,
+        WinNT35,
+        WinNT40,     // NTLM
+        WinNT50      // negotiate Kerberos ou NTLM
+    }
+}

+ 15 - 0
CG67.FicheCollege.root/CG67.FicheCollege/CG67.FicheCollege.Tools/LogonSessionType.cs

@@ -0,0 +1,15 @@
+namespace CG67.FicheCollege.Tools
+{
+    /// <summary>
+    /// Type de session
+    /// </summary>
+    public enum LogonSessionType : uint
+    {
+        Interactive = 2,
+        Network,
+        Batch,
+        Service,
+        NetworkCleartext = 8,
+        NewCredentials
+    }
+}

+ 36 - 0
CG67.FicheCollege.root/CG67.FicheCollege/CG67.FicheCollege.Tools/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Les informations générales relatives à un assembly dépendent de 
+// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
+// associées à un assembly.
+[assembly: AssemblyTitle("CG67.FicheCollege.Tools")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Conseil Général du Bas-Rhin")]
+[assembly: AssemblyProduct("CG67.FicheCollege.Tools")]
+[assembly: AssemblyCopyright("Copyright © Conseil Général du Bas-Rhin 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly 
+// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de 
+// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
+[assembly: ComVisible(false)]
+
+// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
+[assembly: Guid("a1cd1c8f-7149-4a70-8440-9fd6c065a5e5")]
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+//      Version principale
+//      Version secondaire 
+//      Numéro de build
+//      Révision
+//
+// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut 
+// en utilisant '*', comme indiqué ci-dessous :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]