We have a mixed SharePoint 2003 and EPiServer site built for a customer.
The WebParts in SharePoint fetch data from a WebService created which in turn fetches its data from EPiServer.
Now I need to evaluate the users rights to handle some new features. I wish to use the logged in user and verify that they have edit rights to a page. If they do that page will be added to a dataset returned by the webservice.
This is the code I have implemented:
PageData pageData = EPiServer.Global.EPDataFactory.GetPage(new PageReference(Convert.ToInt32(dr["ID"]))); UserSid user = UserSid.Load(sUserName); EPiServer.Security.UnifiedPrincipal principal = new EPiServer.Security.UnifiedPrincipal(user); EPiServer.Security.AccessLevel access = pageData.ACL.QueryAccess(principal.SidList);
if ((access & EPiServer.Security.AccessLevel.Edit) == EPiServer.Security.AccessLevel.Edit) { dt2.ImportRow(dr); }
When I Run this code in the WebService I get the following error: System.ArgumentException: User is not an extranet user Parameter name: sid at EPiServer.Security.UnifiedPrincipal..ctor(UserSid sid) at SysWebService.PortalService.getPersistentNavigation(String sUserName, Int32 iPageID) in c:\svn\syswebservice
Any clues to why this occur, or am I using the wrong method of doing this?
Hi,
We have a mixed SharePoint 2003 and EPiServer site built for a customer.
The WebParts in SharePoint fetch data from a WebService created which in turn fetches its data from EPiServer.
Now I need to evaluate the users rights to handle some new features. I wish to use the logged in user and verify that they have edit rights to a page. If they do that page will be added to a dataset returned by the webservice.
This is the code I have implemented:
PageData pageData = EPiServer.Global.EPDataFactory.GetPage(new PageReference(Convert.ToInt32(dr["ID"])));
UserSid user = UserSid.Load(sUserName);
EPiServer.Security.UnifiedPrincipal principal = new EPiServer.Security.UnifiedPrincipal(user);
EPiServer.Security.AccessLevel access = pageData.ACL.QueryAccess(principal.SidList);
if ((access & EPiServer.Security.AccessLevel.Edit) == EPiServer.Security.AccessLevel.Edit)
{
dt2.ImportRow(dr);
}
When I Run this code in the WebService I get the following error:
System.ArgumentException: User is not an extranet user
Parameter name: sid
at EPiServer.Security.UnifiedPrincipal..ctor(UserSid sid)
at SysWebService.PortalService.getPersistentNavigation(String sUserName, Int32 iPageID) in c:\svn\syswebservice
Any clues to why this occur, or am I using the wrong method of doing this?
kind regards
Mattias