Bonjour

Voici ce que je veux faire.

J'ai dans un site web, un répertoire "private" qui est protégé par un role d'Active directory (groupe). L'utilisateur doit faire parti de ce groupe pour avoir accès aux pages de ce répertoire. Dans mon web.config au root du site web j'ai ajouté ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
	<location path="Private">
		<system.web>
			<authorization>
				<allow users="14REGIONAL\UnUsagerAdmin"/>
				<allow roles="BUILTIN\Administrators, DOMAIN\UnGroupeAdmin"/>
				<deny users="*"/>
			</authorization>
		</system.web>
	</location>
Ceci fonctionne parfaitement. Maintenant, dans une des pages du répertoire Private, j'ai une page qui se connecte à SQL Serveur et permet d'exécuter une job dans SQL. Cette page fonctionne à merveille quand j'utilise l'usager SA de sql serveur. Par contre, quand j'utilise dans le code un compte usager AD (Qui à tout les droits possibles sur le serveur et le serveur SQL), il me donne une erreur comme quoi l'usager n'a pas les autorisations ????

Est-ce qui ne comprends pas comment faire ?? Est-ce que c'est vraiment l'usager qui n'a pas les droits nécéssaire pour exécuter le job SQL ? ;-) J'ai besoin d'aide ! MErci beaucoup

Code de ma fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Protected Sub btnstartSSISJob_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnstartSSISJob.Click
        Dim timeout As Integer = 3600
        Dim jobname As String = "jobSSIS_GestionIntervention"
        Try
            Dim con As New Microsoft.SqlServer.Management.Common.ServerConnection()
            con.ServerInstance = "NomduServeur"
            con.ConnectAsUserName = "domain\NomDeLusager"
            con.ConnectAsUserPassword = "MotDePasse"
            'creation de l'objet serveur
            Dim egbi2k5 As New Microsoft.SqlServer.Management.Smo.Server(con)
            'execute le job si il existe.
            If egbi2k5.JobServer.Jobs.Contains(jobname) Then 'PLANTE ICI
                Dim oLastRunDate As DateTime = egbi2k5.JobServer.Jobs(jobname).LastRunDate
                egbi2k5.JobServer.Jobs(jobname).Start()
                Dim nb_sec As Integer = 0
                While oLastRunDate = egbi2k5.JobServer.Jobs(jobname).LastRunDate
                    egbi2k5.JobServer.Jobs(jobname).Refresh()
                    If nb_sec < timeout Then
                        nb_sec += 1
                        System.Threading.Thread.Sleep(1000)
                    Else
                        'envoi d'email
                        lblLogSSISJob.Text = "Time out : le process est trop lent"
                        Console.WriteLine("time out: le process est trop lent")
                    End If
                End While
                lblLogSSISJob.Text = "La mise à jour du cube s'est terminée avec succès !"
                Console.WriteLine("fin")
                Return
            Else
                Return
            End If
        Catch ex As SqlException
            If ex.ErrorCode = -2146232060 Then
                lblLogSSISJob.Text = "Il y a présentement déjà une mise à jour des cubes !"
            End If
        End Try
    End Sub