Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création WEb Site

2 réponses
Avatar
Jarreijk
Bonjour,

J'ai un grand problème en essayant de céer un web site(en utilisant l'object
model) à partir d'une web part. Je reçoit constament l'erreur:

"Microsoft.SharePoint.SPException: The security validation for this page is
invalid.......etc"

Même si je vais une impersonalisation. Avez vous une idée comment
pourrais-je contourner cela? Help Help Help :-)

Merci!

Voici mon code:

Impersonator imp=null;
string CurrentSiteUrl;
try
{
imp=new Impersonator("Admin","domaine", "password");
imp.Impersonate();
CurrentSiteUrl="mywebSite";
SPSite tmpSite=new SPSite(CurrentSiteUrl);
_spWeb = tmpSite.OpenWeb();
SPWebCollection subSites= _spWeb.Webs;
_spWeb.AllowUnsafeUpdates=true;
subSites.Add("test", "Test", "", Convert.ToUInt32(1033),
"TemplateProject.stp", false, false);
_spWeb.AllowUnsafeUpdates=true;
}
finally {
imp.undo();
}

2 réponses

Avatar
Jarreijk
Trouvé la réponse après 3 jours de casse-tête. Le tout parce que je veux
pouvoir créer programativement un site web WSS et je ne veux pas donner le
droit administrateur à l'utilisateur en question.
Via l'Object Model on aura toujours ce message d'erreur (si on n’est pas
Administrateur sur le WSS). Donc la seule solution qui fonctionne c'est de
créer un web service, de l'intégrer parmi les web services déjà publiés par
WSS et finalement de le consommer à partir d’une application Windows ou
encore mieux d’une web part (c’était mon cas car ce que je voulais faire
était de créer un panneau avec qq outils d’administration sans pour autant
donner des droits d’administrateur aux utilisateurs intervenants sur ce
panneau.).
L’article Microsoft suivant sinthétise très bien les premières deux étapes :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/ODC_WritingCustomWebServicesforSPPT.asp?_r=1

Dans l’exemple donné par Microsoft il faut remplacer la méthode HelloWorld()
par une méthode propre, p.ex SiteCreation() qui va créer le nouveau site web :

[WebMethod]
public string CreateSite(string ParentSiteUrl, string URL, string Title,
string Description, string TemplateSite, boolean permissions)
{

try {
SPSite tmpSite=new SPSite(ParentSiteUrl);
tmpSite.CatchAccessDeniedExceptionúlse;
Microsoft.SharePoint.SPWeb _spWeb = tmpSite.OpenWeb();
SPWebCollection subSites= _spWeb.Webs;
_spWeb.AllowUnsafeUpdates=true;
subSites.Add(URL, Title, Description, Convert.ToUInt32(1033),
TemplateSite, boolean, false);
_spWeb.AllowUnsafeUpdatesúlse;
return "Web Site Successfully created";
}
catch (System.Exception ee)
{
return ee.Message + ee.Source;
}
}

Par après il faut consommer le web service (à partir d’une autre app ou web
part qui ne tourne pas sous Admin mais qui appele ce web service avec des
droits admin – credentials encastré dans le code..oui je sais..c’est pas
l’idéal mais ca marche et sans des grands risques.) :

Try
{
WSS.ServiceX _svc=new WSS.ServiceX();
_svc.Credentials = new NetworkCredential("Un compte avec des droits admin",
"Password","Domain");
string Retval=_svc.CreateSite(ParentWebsite,URL,Title,Description,
TemplateName, false);
}

Voilà. Ca peut servir.


Jarreijk

"Jarreijk" a écrit :

Bonjour,

J'ai un grand problème en essayant de céer un web site(en utilisant l'object
model) à partir d'une web part. Je reçoit constament l'erreur:

"Microsoft.SharePoint.SPException: The security validation for this page is
invalid.......etc"

Même si je vais une impersonalisation. Avez vous une idée comment
pourrais-je contourner cela? Help Help Help :-)

Merci!

Voici mon code:

Impersonator imp=null;
string CurrentSiteUrl;
try
{
imp=new Impersonator("Admin","domaine", "password");
imp.Impersonate();
CurrentSiteUrl="mywebSite";
SPSite tmpSite=new SPSite(CurrentSiteUrl);
_spWeb = tmpSite.OpenWeb();
SPWebCollection subSites= _spWeb.Webs;
_spWeb.AllowUnsafeUpdates=true;
subSites.Add("test", "Test", "", Convert.ToUInt32(1033),
"TemplateProject.stp", false, false);
_spWeb.AllowUnsafeUpdates=true;
}
finally {
imp.undo();
}







Avatar
EROL [MVP SPS]
Bonsoir,

Merci de la part de la communauté
Cdlt
--

EROL
--
Prochaine Réunion du Club SharePoint FRANCE
Le mercredi 14 Juin 2006 à PARIS.
Elle aura lieu :
Microsoft Paris
148 rue de l'Université
75007 Paris
Pour vous inscrire gratuitement au club SPS,
cliquer ici : http://inscrits.clubsps.org/ .

"Jarreijk" a écrit dans le message de
news:
Trouvé la réponse après 3 jours de casse-tête. Le tout parce que je veux
pouvoir créer programativement un site web WSS et je ne veux pas donner le
droit administrateur à l'utilisateur en question.
Via l'Object Model on aura toujours ce message d'erreur (si on n'est pas
Administrateur sur le WSS). Donc la seule solution qui fonctionne c'est de
créer un web service, de l'intégrer parmi les web services déjà publiés
par
WSS et finalement de le consommer à partir d'une application Windows ou
encore mieux d'une web part (c'était mon cas car ce que je voulais faire
était de créer un panneau avec qq outils d'administration sans pour autant
donner des droits d'administrateur aux utilisateurs intervenants sur ce
panneau.).
L'article Microsoft suivant sinthétise très bien les premières deux étapes
:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/ODC_WritingCustomWebServicesforSPPT.asp?_r=1

Dans l'exemple donné par Microsoft il faut remplacer la méthode
HelloWorld()
par une méthode propre, p.ex SiteCreation() qui va créer le nouveau site
web :

[WebMethod]
public string CreateSite(string ParentSiteUrl, string URL, string Title,
string Description, string TemplateSite, boolean permissions)
{

try {
SPSite tmpSite=new SPSite(ParentSiteUrl);
tmpSite.CatchAccessDeniedExceptionúlse;
Microsoft.SharePoint.SPWeb _spWeb = tmpSite.OpenWeb();
SPWebCollection subSites= _spWeb.Webs;
_spWeb.AllowUnsafeUpdates=true;
subSites.Add(URL, Title, Description, Convert.ToUInt32(1033),
TemplateSite, boolean, false);
_spWeb.AllowUnsafeUpdatesúlse;
return "Web Site Successfully created";
}
catch (System.Exception ee)
{
return ee.Message + ee.Source;
}
}

Par après il faut consommer le web service (à partir d'une autre app ou
web
part qui ne tourne pas sous Admin mais qui appele ce web service avec des
droits admin - credentials encastré dans le code..oui je sais..c'est pas
l'idéal mais ca marche et sans des grands risques.) :

Try
{
WSS.ServiceX _svc=new WSS.ServiceX();
_svc.Credentials = new NetworkCredential("Un compte avec des droits
admin",
"Password","Domain");
string Retval=_svc.CreateSite(ParentWebsite,URL,Title,Description,
TemplateName, false);
}

Voilà. Ca peut servir.


Jarreijk

"Jarreijk" a écrit :

Bonjour,

J'ai un grand problème en essayant de céer un web site(en utilisant
l'object
model) à partir d'une web part. Je reçoit constament l'erreur:

"Microsoft.SharePoint.SPException: The security validation for this page
is
invalid.......etc"

Même si je vais une impersonalisation. Avez vous une idée comment
pourrais-je contourner cela? Help Help Help :-)

Merci!

Voici mon code:

Impersonator imp=null;
string CurrentSiteUrl;
try
{
imp=new Impersonator("Admin","domaine", "password");
imp.Impersonate();
CurrentSiteUrl="mywebSite";
SPSite tmpSite=new SPSite(CurrentSiteUrl);
_spWeb = tmpSite.OpenWeb();
SPWebCollection subSites= _spWeb.Webs;
_spWeb.AllowUnsafeUpdates=true;
subSites.Add("test", "Test", "", Convert.ToUInt32(1033),
"TemplateProject.stp", false, false);
_spWeb.AllowUnsafeUpdates=true;
}
finally {
imp.undo();
}