Problème d'export Word/Excel Crystal Report
Le
Richard Torre

Bonjour webmestres ,
J'utilise la version crystal report de visual studio 2005.
Mon application rencontre un problème sous certains serveurs lorsque je veux
exporter mon état crystal
vers un doc word ou excel.
Lorsque mon document se transforme, la page word m'affiche la page
login/password de mon application.
J'ai paramétrer les COM avec les droits max pour tout le monde.
Je me demande si ce n'est pas un problème de sécurité de mon application vu
que j'utilise une authentication mode forms
parce que l'export me redirige sur cette page.
Je vous laisse ci-dessous quelques lignes de mon web.config.
<authentication mode="Forms">
<forms name=".ASPXUSERDEMO" loginUrl="./asp/login2.aspx" protection="All"
timeout="600" />
</authentication>
<authorization>
<deny users="?" />
<!--allow users="*" /-->
</authorization>
En vous remerciant,
--
Richard Torre
J'utilise la version crystal report de visual studio 2005.
Mon application rencontre un problème sous certains serveurs lorsque je veux
exporter mon état crystal
vers un doc word ou excel.
Lorsque mon document se transforme, la page word m'affiche la page
login/password de mon application.
J'ai paramétrer les COM avec les droits max pour tout le monde.
Je me demande si ce n'est pas un problème de sécurité de mon application vu
que j'utilise une authentication mode forms
parce que l'export me redirige sur cette page.
Je vous laisse ci-dessous quelques lignes de mon web.config.
<authentication mode="Forms">
<forms name=".ASPXUSERDEMO" loginUrl="./asp/login2.aspx" protection="All"
timeout="600" />
</authentication>
<authorization>
<deny users="?" />
<!--allow users="*" /-->
</authorization>
En vous remerciant,
--
Richard Torre
de mon fichier web.config je pense.
<forms name=".ASPXUSERDEMO" loginUrl="./asp/login2.aspx" protection="All"
timeout="600" />
<authorization>
<deny users="?" />
</authorization>
Pour simplifier, tous les utilisateurs non logués à mon site passent
obligatoirement par la page login2.aspx.
Et c'est bien le résultat escompté.
Sauf qu' au moment ou crystal transmet les informations pour le traduire en
document Word, c'est comme si l'utilisateur devient inconnu et mon appli
redirige la
sortie du document word comme étant la page login2.aspx (et tout ça en
format word).
j'ai testé en supprimant <deny users="?" /> et je n'ai pas le problème (à
savoir que ce problème n'existe pas sur tous les serveurs utilisant
l'application).-
Si quelqu'un à des idées de paramétrage pour contourner le problème ?
En vous remerciant,
Richard Torre
--
Richard Torre
"Richard Torre" %
Ok
Qu'appellez vous par transmettre l'informations ?
Vous executez un code spécifique ?
J'ai du mal à comprendre... pouvez vous être plus explicite ?
Par curiosité :
Pourquoi utilisez vous <deny users="?" /> et non <deny users="*" />
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
c'était le choix du précédent développeur de l'application.
Je n'utilise pas spécialement de code spécifique depuis la migration vers
2005 car ceci se réalise automatiquement.
Mais le projet est issu d'une migration de 2002.
Le code que j'utilisais étais:
Dim fs As FileStream
Dim FileSize As Long
Dim GenDS As dsDataFixe
Dim crReportObject As CrystalDecisions.CrystalReports.Engine.ReportObject()
Dim oExO As ExportOptions
Dim oExDo As New DiskFileDestinationOptions()
Dim contentType As String = "application/msword"
'Build Target Filename
Dim tempFileName As String =
System.Configuration.ConfigurationManager.AppSettings("TempDir") &
Session.SessionID.ToString() + ".doc"
'Export to PDF
oExDo.DiskFileName = tempFileName
oExO = myRpt.ExportOptions
oExO.DestinationOptions = oExDo
oExO.ExportDestinationType = ExportDestinationType.DiskFile
oExO.ExportFormatType = ExportFormatType.WordForWindows
'Remplir les parametres du report
myRpt = RemplirParametres(myRpt)
myRpt.Export()
myRpt.Close()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = contentType
Response.WriteFile(tempFileName)
Response.Flush()
Response.Close()
Oui, imaginez un formulaire de login tout simple (login/password).
Lors de ma connection à l'application ASPNET, je passe obligatoirement par
ce formulaire d'authentification. Peu importe le lien que j'ai tapé dans
l'URL, si je ne me suis pas loggué via ce formulaire, j'y suis redirigé.
Donc je me loggue, tout se passe bien (sur la plupart des ordinateurs), et
dès que je veux sortir un état crystal - liste du personnel de la société
par exemple - au format word, et bien mon internet explorer accepte bien le
content type "word" mais m'y affiche mon formulaire d'authentification à la
place de mon état. Bien sûr ce formulaire de login sous internet explorer
(mode word si je peux me permettre) ne sert à rien car il a été converti en
document word.
En vous remerciant,
--
Richard Torre
"Gilles TOURREAU"
Ok,
1/Avez vous essayé avec users="*" plustot que users="?"
2/Avez vous essayé l'attribut dans le webconfig <forms ...
cookieless="UseUri" /> ?
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
1/Oui j'ai essayé avec *. Le problème c'est qu'aucune authentification
n'est alors possible. Du coup j'ai essayé sans restriction et cela
fonctionne très bien.
2/j'ai aussi essayé en cookiless="True" mais sans succès.
l'identifiant de session se reportant bien dans l'url
1. en export PDF sous internet explorer cela fonctionne très bien
2. en utilisant Firefox, l'export word et excel fonctionne très bien (même
si cela m'ouvre réellement l'application avec Excel et Word, mais
contrairement à Internet explorer , j'ai un pop up qui me demande si je veux
bien l'ouvrir)
Du coup je me demande si c'est un paramétrage Internet explorer que j'aurais
oublié ou encore si mes dll de l'application ne sont pas pourries ou
incompatibles avec mon SE !
--
Richard Torre