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

[WSS 2003] Comment prendre une SPList lorsqu'on n'a pas accès au SPWeb le possédant

10 réponses
Avatar
bboule
Bonjour

Je m'explique.

J'ai p.ex. monuser a acc=E8s =E0 maliste de monsite mais pas acc=E8s au
site lui-m=EAme.

Je sais que c'est possible car si on se loggue avec cet utilisateur
et tape directement l'adresse de la liste on peut la voir.

Par contre, si j'essaies un ...allwebs[monsite].lists[maliste] je me
fais planter.

M=EAme un allwebs[monsite].catch....=3Dfalse avant ne change rien =E0
l'histoire

Une id=E9e ???

C=E9dric Petter

10 réponses

Avatar
pocket
Peut être qu'il faut passer par l'impersonation!

A suivre...
Avatar
bboule
Et si on peut pas ???
Si ce programme n'est pas pour garder, mais pour vendre ou donner à
n'importe qui ??
On ne peux pas utiliser l'impersonation comme ca !

Une autre idée ?

pocket a écrit :

Peut être qu'il faut passer par l'impersonation!

A suivre...


Avatar
pocket
L'impersonation n'est pas une solution idéale mais des fois c'est l'unique
solution (comme quand on veut accéder à une liste distance à laquelle on n'a
pas droit).

Dans votre cas, allwebs[monsite].lists[maliste] implique l'accès au site
(allwebs[monsite]) et si on n'a pas le droit l'impersonaltion intervient...

De ma part, je ne vois pas une autre solution.

Laissons parler les experts!
Avatar
SD
D'autant plus que l'on peut faire de l'impersonation avec le compte du pool
de connexion.
Pas de user ou mot de passe en dur.
@+++

SD


"bboule" a écrit dans le message de news:

Et si on peut pas ???
Si ce programme n'est pas pour garder, mais pour vendre ou donner à
n'importe qui ??
On ne peux pas utiliser l'impersonation comme ca !

Une autre idée ?

pocket a écrit :

Peut être qu'il faut passer par l'impersonation!

A suivre...


Avatar
bboule
Ok, mais mon problème est le suivant :

Admettons que je fais du dynamique et que le site et la liste, je les
connais pas à la base !
Si mon utilisateur n'avais pas le droit d'accéder à la liste que
j'essaye de lire, avec l'impersonation, il aura tout à coup le droit
!!!

Alors que je veux juste qu'il puisse accéder au différentes listes
auquel il a le droit. c'est tout !

Une autre idée ????

Cédric Petter

SD schrieb:

D'autant plus que l'on peut faire de l'impersonation avec le compte du po ol
de connexion.
Pas de user ou mot de passe en dur.
@+++

SD


"bboule" a écrit dans le message de news:

Et si on peut pas ???
Si ce programme n'est pas pour garder, mais pour vendre ou donner à
n'importe qui ??
On ne peux pas utiliser l'impersonation comme ca !

Une autre idée ?

pocket a écrit :

> Peut être qu'il faut passer par l'impersonation!
>
> A suivre...


Avatar
pocket
Bonsoir SD.

Grande idée à exploiter!

Comme fais tu pour récuperer, dans le code, le compte du Pool d'Application ?
Avatar
pocket
Question :

Pourquoi la personne à laquelle vous donnez accès à une liste n'aura t elle
pas droit d'accéder au site contenant cette liste ?

Si c'est pour des raisons de sécurité çàd si vous voulez que cette personne
n'accède qu'à cette liste, pourquoi ne pas créer un site contenant juste
cette liste ainsi le problème de sécurité n'est plus...

PoCKet.
Avatar
Renaud Comte
Il faut regarder de plus prés le SDK

AllWeb est une propriétés EXIGEANT les droits WebAmin donc impersonnation
ou droit

Personnellement, je ne l'utilise JAMAIS
je preferes de loin le couple







SPweb web = new SPsite(url).OpenWeb();
pour l'accés je rajouter

try
{
web.site.catachaccessdeniedexceptionúlse;
string title = web.title
}
catch
{
"WRONG"
}

Voila voila

Renaud Comte [MVP]
--------------------------------------
http://blogs.developpeur.org/themit/
http://blog.spsclerics.com/

Bonjour

Je m'explique.

J'ai p.ex. monuser a accès à maliste de monsite mais pas accès au site
lui-même.

Je sais que c'est possible car si on se loggue avec cet utilisateur et
tape directement l'adresse de la liste on peut la voir.

Par contre, si j'essaies un ...allwebs[monsite].lists[maliste] je me
fais planter.

Même un allwebs[monsite].catch....úlse avant ne change rien à
l'histoire

Une idée ???

Cédric Petter



Avatar
SD
çà n'est pas de moi:
http://groups.google.fr/group/microsoft.public.fr.sharepoint/browse_thread/thread/146b06ea34bff2b/883a2a50e76fdc91?lnk=st&q=%22Impersonation+et+Stockage+du+compte+avec+privil%C3%A8ge%22&rnum=1&hl=fr#883a2a50e76fdc91

@++

SD

"pocket" a écrit dans le message de news:

Bonsoir SD.

Grande idée à exploiter!

Comme fais tu pour récuperer, dans le code, le compte du Pool
d'Application ?


Avatar
bboule
Merci Renaud pour cette réponse, malheureusement cela ne fonctionne
pas vraiment super bien !!
J'ai donc pondu le code suivant :
output.Write("test 1<br>");
SPSite sitecoll = SPControl.GetContextSite(Context);
output.Write("test 2<br>");
sitecoll.CatchAccessDeniedException = false;
output.Write("test 3<br>");
SPWeb wWeb = sitecoll.OpenWeb("direction");
output.Write("test 4<br>");
output.Write(wWeb.Title+"<br>");
output.Write("test 4.1<br>");
SPList wList = wWeb.Lists["Constats"];

Voilà l'erreur que je récupère :


test 1
test 2
test 3
test 4
Direction
test 4.1
TEST GNI FAILED : System.UnauthorizedAccessException:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at Microsoft.SharePoint.h.a (UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, String A_1, Int32 A_2,
UInt32 A_3, UInt32 A_4, Boolean A_5, Boolean A_6, UInt32& A_7, UInt32&
A_8, Object& A_9) at
Microsoft.SharePoint.SPListCollection.EnsureListsData(String
strListName) at Microsoft.SharePoint.SPListCollection.get_Item(String
strListName) at BTK.BTK_DataViewer.RenderWebPart(HtmlTextWriter output)

Alors que l'utilisateur en cours n'a pas le droit d'accès au site,
mais à la liste oui !!!!

Une idée ???

Cédric Petter

SD a écrit :

çà n'est pas de moi:
http://groups.google.fr/group/microsoft.public.fr.sharepoint/browse_threa d/thread/146b06ea34bff2b/883a2a50e76fdc91?lnk=st&q=%22Impersonation+et+ Stockage+du+compte+avec+privil%C3%A8ge%22&rnum=1&hl=fr#883a2a50e76fdc91

@++

SD

"pocket" a écrit dans le message de news:

> Bonsoir SD.
>
> Grande idée à exploiter!
>
> Comme fais tu pour récuperer, dans le code, le compte du Pool
> d'Application ?