all groups > iis security > april 2005 >
You're in the

iis security

group:

401 Unauthorized trying to read SPList Attachment - owssrv.dll



Re: 401 Unauthorized trying to read SPList Attachment - owssrv.dll Mike Walsh
4/25/2005 12:00:00 AM
iis security: Please do not post WSS programming questions in future to the main WSS
newsgroup but only to the newsgroup specially created for WSS programming
questions.

We are maintaining a clear split where WSS Programming questions go only to
microsoft.public.sharepoint.windowsservices.development and not to the
(Administration issues) main newsgroup
microsoft.public.sharepoint.windowsservices.

This split is to the benefit of the readers of one or both these newsgroups.

Thanks.

Mike Walsh, Helsinki, Finland
WSS FAQ at http://wss.collutions.com
Please reply to the newsgroup

[quoted text, click to view]

401 Unauthorized trying to read SPList Attachment - owssrv.dll Chris Kane
4/25/2005 8:51:02 AM
We have written a class that enumerates the items in a WSS list and then
attemptes to open the attachment for each item. We have written two classes,
one to impersonate a user and read in the list information and the other to
be called by the first which actually opens the attachment. Our code fails
when it tries to open the attachment in the second class with a 401 -
Unauthorized error from IIS on http://localhost/_vti_bin/owssrv.dll. What's
strange is that I can use IE to open the URL to the attachemnt without any
problems. I noticed in the IIS logs that when I open the URL, I can see the
domain\password passed to IIS from IE. However, when our code tries to
access the same URL, no user information is passed, causing the 401. We have
impersonated a valid user in our code, so why does IIS not see it?

Re: 401 Unauthorized trying to read SPList Attachment - owssrv.dll David Wang [Msft]
4/25/2005 11:57:03 PM
IIS does not see your impersonated user because you failed to authenticate
as that user.

Remember that we are talking about HTTP, which has its own publicly defined
authentication protocols. Client-side impersonation isn't one of them. The
identity of the user on the client, impersonated or not, means ABSOLUTELY
NOTHING on the server unless you negotiate HTTP authentication of some sort.

IE, for example, does this authentication behind the scenes without you
noticing. So do many of the Windows programs and protocols. This isn't how
the web and HTTP works, though, and you just have to follow the rules.

--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
[quoted text, click to view]
We have written a class that enumerates the items in a WSS list and then
attemptes to open the attachment for each item. We have written two
classes,
one to impersonate a user and read in the list information and the other to
be called by the first which actually opens the attachment. Our code fails
when it tries to open the attachment in the second class with a 401 -
Unauthorized error from IIS on http://localhost/_vti_bin/owssrv.dll. What's
strange is that I can use IE to open the URL to the attachemnt without any
problems. I noticed in the IIS logs that when I open the URL, I can see the
domain\password passed to IIS from IE. However, when our code tries to
access the same URL, no user information is passed, causing the 401. We
have
impersonated a valid user in our code, so why does IIS not see it?

Thanks!

Re: 401 Unauthorized trying to read SPList Attachment - owssrv.dll Bart
4/26/2005 2:26:02 AM
hi

i think the current context is associated with current logged in user
credentials so change the context.


string CurrentSiteUrl = SPControl.GetContextWeb(Context).Url;

start impersonation//username password etc

SPSite tmpSite = new SPSite(CurrentSiteUrl);
tmpSite.CatchAccessDeniedException = false;
SPWeb mysite= tmpSite.OpenWeb();

SPList lists=mysite.Lists["list name"];

undo impersonation

hope this helps

bart
[quoted text, click to view]
Re: 401 Unauthorized trying to read SPList Attachment - owssrv.dll Chris Kane
4/26/2005 6:37:05 AM
Okay, thanks. We store XML documents as SPListItem attachments that are to
be processed by our workflow application. We attempted to pass the
attachment's URI directly to the XPathDocument class constructor in
preparation for transforming it via XSL. This is where we originally
received the 401 from IIS. I can see how we could retrieve the attachemnt
using the HTTPWebResponse object and then pass this into the XPathDocument
class as a stream. Is this the best way to do this?

Thanks for your help!

[quoted text, click to view]
Re: 401 Unauthorized trying to read SPList Attachment - owssrv.dll Daniel Larson (www.portalbuilder.org)
4/27/2005 10:44:03 PM
Chris,

This sounds like a good approach. If you use the WebRequest be sure to set
it's credentials. Alternatively, a better way may be to get the SPFile object
of the ListItem. I do this in my PortalTools project in creating a disk based
package of document libraries (url is below).

Daniel Larson
http://www.portalbuilder.org
http://workspaces.gotdotnet.com/portaltools


[quoted text, click to view]
AddThis Social Bookmark Button