OVH Cloud OVH Cloud

PB avec une UnauthorizedAccessException

2 réponses
Avatar
UnauthorizedAccessException
Bonjour,
Je souhaite développer une page aspx qui permet d'associer un utilisateur à
un sous-site WSS.
Cette page est placée dans la section "_layouts" de mon site SPS 2003.
Lors de l'appel de la méthode Microsoft.SharePoint.SPRole.AddUser,
j'ai l'erreur suivante :
System.UnauthorizedAccessException: Access is denied. at
Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, Int32 A_1, Int32 A_2,
Boolean
A_3) at Microsoft.SharePoint.SPGroup.AddUser(SPUser user) at
Microsoft.SharePoint.SPRole.AddUser(SPUser user) at
BusinessInteractif.Carat.Layouts.AffiliateUsersToClientGroup.m_ButtonAddUser
s_Click(Object sender, EventArgs e)

Voici le code utilisé :
SPSite v_spsite = SPControl.GetContextSite(Context);
v_spsite.CatchAccessDeniedException = false;
v_spsite.AllowUnsafeUpdates = true;
SPWeb v_spweb = v_spsite.OpenWeb(new
Guid(Request.QueryString["CatID"]));
v_spweb.AllowUnsafeUpdates = true;
SPRole v_sprole = v_spweb.Roles["Contributor"];
foreach(ListItem v_ListItem in m_CheckBoxListUsers.Items)
{
if(v_ListItem.Selected)
{
try
{
v_sprole.AddUser(v_spsite.RootWeb.Users[v_ListItem.Value]);
v_sprole.Update();
}
catch(Exception v_Exception)
{

Response.Write(v_Exception.ToString() + "<BR />");
}
}
}

J'ai vérifier les droits de mon utilisateur, j'ai également tenté de
parametrer l'application pool au niveau de IIS mais rien n'y fait.
Je crains de n'avoir pas tout saisi sur les droits d'execution entre
L'application Pool, le site WSS, le portail SPS et mon user
Sharepoint (qui est au niveau de l'active Directory).

Merci de votre aide.

2 réponses

Avatar
Renaud Comte
Je pense qu'il s'agit surtout d'un soucis de cotnexte de sécurité

Votre page aspx est en script inlin ou vous avez créer un rep virtuel avec
son propre pool et une securite NT

Si vous etes sous sécurité NT, l'utilisateur en cours a t il les droit admin
sur le sous site pour faire cette opération ?

Avez vous augmenter le niveau de trust de votre site pour ce traitement?

Merci

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

Bonjour,
Je souhaite développer une page aspx qui permet d'associer un
utilisateur à
un sous-site WSS.
Cette page est placée dans la section "_layouts" de mon site SPS 2003.
Lors de l'appel de la méthode Microsoft.SharePoint.SPRole.AddUser,
j'ai l'erreur suivante :
System.UnauthorizedAccessException: Access is denied. at
Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, Int32 A_1, Int32 A_2,
Boolean
A_3) at Microsoft.SharePoint.SPGroup.AddUser(SPUser user) at
Microsoft.SharePoint.SPRole.AddUser(SPUser user) at
BusinessInteractif.Carat.Layouts.AffiliateUsersToClientGroup.m_ButtonA
ddUser
s_Click(Object sender, EventArgs e)
Voici le code utilisé :
SPSite v_spsite = SPControl.GetContextSite(Context);
v_spsite.CatchAccessDeniedException = false;
v_spsite.AllowUnsafeUpdates = true;
SPWeb v_spweb = v_spsite.OpenWeb(new
Guid(Request.QueryString["CatID"]));
v_spweb.AllowUnsafeUpdates = true;
SPRole v_sprole = v_spweb.Roles["Contributor"];
foreach(ListItem v_ListItem in m_CheckBoxListUsers.Items)
{
if(v_ListItem.Selected)
{
try
{
v_sprole.AddUser(v_spsite.RootWeb.Users[v_ListItem.Value]);
v_sprole.Update();
}
catch(Exception v_Exception)
{
Response.Write(v_Exception.ToString() + "<BR />");
}
}
}
J'ai vérifier les droits de mon utilisateur, j'ai également tenté de
parametrer l'application pool au niveau de IIS mais rien n'y fait. Je
crains de n'avoir pas tout saisi sur les droits d'execution entre
L'application Pool, le site WSS, le portail SPS et mon user Sharepoint
(qui est au niveau de l'active Directory).

Merci de votre aide.



Avatar
UnauthorizedAccessException
Merci pour votre réponse.

Le niveau d'execution trust de la page est full. La page s'execute
normalement et dans le contexte Sharepoint.

L'exeption est soulevée uniquement quand j'ajoute des utilisateur a un role
du sous site, ou quand j'essai de lui attribuer des permitions.

D'autre part, l'execution via une webpart donne le meme résultat.

Merci encore.


"Renaud Comte" a écrit :

Je pense qu'il s'agit surtout d'un soucis de cotnexte de sécurité

Votre page aspx est en script inlin ou vous avez créer un rep virtuel avec
son propre pool et une securite NT

Si vous etes sous sécurité NT, l'utilisateur en cours a t il les droit admin
sur le sous site pour faire cette opération ?

Avez vous augmenter le niveau de trust de votre site pour ce traitement?

Merci

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

> Bonjour,
> Je souhaite développer une page aspx qui permet d'associer un
> utilisateur à
> un sous-site WSS.
> Cette page est placée dans la section "_layouts" de mon site SPS 2003.
> Lors de l'appel de la méthode Microsoft.SharePoint.SPRole.AddUser,
> j'ai l'erreur suivante :
> System.UnauthorizedAccessException: Access is denied. at
> Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
> Microsoft.SharePoint.Library.a.a(String A_0, Int32 A_1, Int32 A_2,
> Boolean
> A_3) at Microsoft.SharePoint.SPGroup.AddUser(SPUser user) at
> Microsoft.SharePoint.SPRole.AddUser(SPUser user) at
> BusinessInteractif.Carat.Layouts.AffiliateUsersToClientGroup.m_ButtonA
> ddUser
> s_Click(Object sender, EventArgs e)
> Voici le code utilisé :
> SPSite v_spsite = SPControl.GetContextSite(Context);
> v_spsite.CatchAccessDeniedException = false;
> v_spsite.AllowUnsafeUpdates = true;
> SPWeb v_spweb = v_spsite.OpenWeb(new
> Guid(Request.QueryString["CatID"]));
> v_spweb.AllowUnsafeUpdates = true;
> SPRole v_sprole = v_spweb.Roles["Contributor"];
> foreach(ListItem v_ListItem in m_CheckBoxListUsers.Items)
> {
> if(v_ListItem.Selected)
> {
> try
> {
> v_sprole.AddUser(v_spsite.RootWeb.Users[v_ListItem.Value]);
> v_sprole.Update();
> }
> catch(Exception v_Exception)
> {
> Response.Write(v_Exception.ToString() + "<BR />");
> }
> }
> }
> J'ai vérifier les droits de mon utilisateur, j'ai également tenté de
> parametrer l'application pool au niveau de IIS mais rien n'y fait. Je
> crains de n'avoir pas tout saisi sur les droits d'execution entre
> L'application Pool, le site WSS, le portail SPS et mon user Sharepoint
> (qui est au niveau de l'active Directory).
>
> Merci de votre aide.
>