M
Michael Randrup
Hi,
I have the following problem:
1) We have to validate users on an anonymous/public-website using a custom
login page.
2) From this login page we redirect them to an extranet site, which shows
them sharepoint information, etc. e.g. from this point on their web requests
should be performed with their impersonated identities not as anonymous
users. The extranet sites uses Windows Integrated Security, while the "main
site" uses anonymous logins.
For them to use the sharepoint functionality we need to impersonate a
windows user that have the correct access to sharepoint. I have gotten so
far as to do the impersonation:
imp = New ImpersonationWrapper
imp.ImpersonateUser("username", "password", "domain")
Me.Context.User = New
System.Security.Principal.WindowsPrincipal(imp.NewId)Me.Cache.Add("W",
Me.Context.User, Nothing, DateTime.MaxValue, New TimeSpan(0, 10, 0),
CacheItemPriority.High, Nothing)
This sets the request context to the correct windows user, using a small
wrapper class around the Win32 LogonUser() API. I can now cache the
IPrincipal and set the context in each form_load() from this point on:
Me.Context.User = CType(Me.Cache("W"), IPrincipal)
My problem is that when I, for example, load the sharepoint page in an
IFRAME on the page, it is not using my impersonated user because the
sharepoint page is located in another web application or something?!?!
Do any of you have a good approach for doing this?!
Thanks in advance!
Michael
I have the following problem:
1) We have to validate users on an anonymous/public-website using a custom
login page.
2) From this login page we redirect them to an extranet site, which shows
them sharepoint information, etc. e.g. from this point on their web requests
should be performed with their impersonated identities not as anonymous
users. The extranet sites uses Windows Integrated Security, while the "main
site" uses anonymous logins.
For them to use the sharepoint functionality we need to impersonate a
windows user that have the correct access to sharepoint. I have gotten so
far as to do the impersonation:
imp = New ImpersonationWrapper
imp.ImpersonateUser("username", "password", "domain")
Me.Context.User = New
System.Security.Principal.WindowsPrincipal(imp.NewId)Me.Cache.Add("W",
Me.Context.User, Nothing, DateTime.MaxValue, New TimeSpan(0, 10, 0),
CacheItemPriority.High, Nothing)
This sets the request context to the correct windows user, using a small
wrapper class around the Win32 LogonUser() API. I can now cache the
IPrincipal and set the context in each form_load() from this point on:
Me.Context.User = CType(Me.Cache("W"), IPrincipal)
My problem is that when I, for example, load the sharepoint page in an
IFRAME on the page, it is not using my impersonated user because the
sharepoint page is located in another web application or something?!?!
Do any of you have a good approach for doing this?!
Thanks in advance!
Michael