Re: Impersonation headache
From: Ken Schaefer (kenREMOVE_at_THISadopenstatic.com)
Date: 10/26/04
- Next message: Naveen: "RE: Forms Auth and FormsAuthentication.SignOut()Question"
- Previous message: David Davies: "Re: CreateDirectory working inconsistantly from ASP.net"
- In reply to: Joe Kaplan \(MVP - ADSI\): "Re: Impersonation headache"
- Next in thread: James Pemberton: "Re: Impersonation headache"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Tue, 26 Oct 2004 14:39:28 +1000
In addition to Joe's comments, the following document is quite useful in
getting these things setup:
Troubleshooting Kerberos Errors
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/tkerberr.mspx
It covers Kerberos and delegation basics, common scenarios and
troubleshooting tips and tools.
Cheers
Ken
"Joe Kaplan (MVP - ADSI)" <joseph.e.kaplan@removethis.accenture.com> wrote
in message news:eRzBBatuEHA.1396@tk2msftngp13.phx.gbl...
> I'm not a great expert on delegation, but you can enable delegation on a
> per user basis in AD. The other trick you have to be careful with is that
> delegation requires Kerberos, so you need to make sure your authentication
> is Kerberos end to end. If it fails over to NTLM, then delegation will
> suddenly break. Sometimes this will manifest itself as intermittent
> problems, where the user fails on one workstation, but works on another or
> a different network.
>
> Joe K.
>
> "James Pemberton" <james.pemberton@devro-casings.com> wrote in message
> news:Olwt45suEHA.2016@TK2MSFTNGP15.phx.gbl...
>> Thanks for the site.
>>
>> I've read quite a bit about delegates, but I have one more question. Do
>> you have to setup your entire network, hardware and users, to utilize
>> delegation? Or can you just set up those users or servers that you think
>> will need to access information remotely?
>>
>>
>> "Joe Kaplan (MVP - ADSI)" <joseph.e.kaplan@removethis.accenture.com>
>> wrote in message news:OOPj1upuEHA.272@TK2MSFTNGP15.phx.gbl...
>>> These both sound like double-hop delegation issues. The fact that it
>>> works when you specify specific credentials in your impersonate tag but
>>> doesn't work when you use Window Integrated Authentication (WIA) and try
>>> to access resources on a different machine than the IIS box suggests
>>> this. The impersonation token that WIA creates cannot hop to another
>>> machine on the network (like your file server or AD) unless Kerberos
>>> delegation has been enabled and working.
>>>
>>> I'd suggest you read up on that first and then come back here if you
>>> can't get it to work or need a different approach.
>>>
>>> http://support.microsoft.com/default.aspx?scid=kb;en-us;810572
>>>
>>> You'll find even more links with a little searching.
>>>
>>> Cheers,
>>>
>>> Joe K.
>>>
>>> "James Pemberton" <james.pemberton@devro-casings.com> wrote in message
>>> news:eD9ilYpuEHA.2172@TK2MSFTNGP14.phx.gbl...
>>>>I have been fighting with impersonation for quite sometime now and now
>>>>matter what I have tried it just won't work.
>>>>
>>>> I am trying to get information on two items:
>>>>
>>>> 1) I'd like to retrieve a file listing from a directory on our file
>>>> server.
>>>>
>>>> As with most cases I have read about, it works fine on my development
>>>> PC, XP OS, but when ran off of the web server, I receive <error: an
>>>> exception of type: {System.UnauthorizedAccessException} occurred>.
>>>>
>>>> The only way I can get it to work is to set impersonation=true and set
>>>> the username and password as out system administrator. I did try to
>>>> set the user name and password as an AD user we created with full
>>>> access to the directory, but to no avail.
>>>>
>>>> On IIS I have just Integrated Windows Authentication checked.
>>>>
>>>> Web.config is as follows: <identity impersonate="true" />
>>>>
>>>> Code:
>>>> Private Sub LoadFiles()
>>>>
>>>> Dim impersonationContext As WindowsImpersonationContext
>>>>
>>>> Dim currentWindowsIdentity As WindowsIdentity
>>>>
>>>> currentWindowsIdentity = CType(WindowsIdentity.GetCurrent,
>>>> WindowsIdentity)
>>>>
>>>> impersonationContext = currentWindowsIdentity.Impersonate()
>>>>
>>>> Dim dt As DataTable = New DataTable
>>>>
>>>> Dim dr As DataRow
>>>>
>>>> dt.Columns.Add("linkname")
>>>>
>>>> dt.Columns.Add("textname")
>>>>
>>>> Dim di As System.IO.DirectoryInfo
>>>>
>>>> 'Dim DirectoryDefault As String =
>>>> "\\ussfs01\private\Manufacturing\ProductRequest\" & intRequestNbr & "\"
>>>>
>>>> Dim DirectoryDefault As String = "\\ussfs01\ProductRequest\" &
>>>> intRequestNbr & "\"
>>>>
>>>> di = New System.IO.DirectoryInfo(DirectoryDefault)
>>>>
>>>> If di.Exists Then
>>>>
>>>> For Each filename As System.IO.FileInfo In di.GetFiles()
>>>>
>>>> dr = dt.NewRow()
>>>>
>>>> dr("linkname") = DirectoryDefault & filename.Name
>>>>
>>>> dr("textname") = filename.Name
>>>>
>>>> dt.Rows.Add(dr)
>>>>
>>>> Next
>>>>
>>>> Dim dv As DataView = New DataView(dt)
>>>>
>>>> dlAttachments.DataSource = dv
>>>>
>>>> dlAttachments.DataBind()
>>>>
>>>> dlAttachments.Visible = True
>>>>
>>>> End If
>>>>
>>>> impersonationContext.Undo()
>>>>
>>>> End Sub
>>>>
>>>>
>>>> 2) In the same program I have been trying to retrive the users
>>>> fullname, displayname, or given name from our AD. Once again this
>>>> works fine on my Development PC, but on the web server I can't even
>>>> retrieve those attributes.
>>>>
>>>> I have tried the following code to no avail:
>>>>
>>>> Dim userkey As String = WindowsIdentity.GetCurrent.Name.Substring(3)
>>>>
>>>> Dim dse As New DirectoryEntry("LDAP://US")
>>>>
>>>> Dim dsearch As DirectorySearcher = New DirectorySearcher(dse)
>>>>
>>>> dsearch.Filter = "(&(objectclass=user)(cn=" & userkey & "))"
>>>>
>>>> dsearch.PropertiesToLoad.Add("displayname")
>>>>
>>>> Dim sr As SearchResult = dsearch.FindOne
>>>>
>>>> If Not (sr Is Nothing) Then
>>>>
>>>> Dim rp As ResultPropertyCollection = sr.Properties
>>>>
>>>> UserName = rp.Item("displayname").Item(0)
>>>>
>>>> Else
>>>>
>>>> UserName = Nothing
>>>>
>>>> End If
>>>>
>>>> I have tried the following code to no avail:
>>>>
>>>> Any help would be greatly appreciated!
>>>>
>>>> James Pemberton
>>>>
>>>>
>>>
>>>
>>
>>
>
>
- Next message: Naveen: "RE: Forms Auth and FormsAuthentication.SignOut()Question"
- Previous message: David Davies: "Re: CreateDirectory working inconsistantly from ASP.net"
- In reply to: Joe Kaplan \(MVP - ADSI\): "Re: Impersonation headache"
- Next in thread: James Pemberton: "Re: Impersonation headache"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|
|