London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Webservices - basic authentication problem

Vote:
 

I'm trying to configure the WebServices-path on a formsauthenticated site to use basic authentication. But I cant get passed the (Windows) login prompt. If I comment out the basicauthenticationsection and get to the forms-loginpage I get in.

<location path="WebServices">
    <!--<episerver.basicAuthentication sendBasicChallenge="true" basicRealm="" />-->
    <system.web>
        ...
    </system.web>
</location>

So obviously I have the correct permissions. The httpmodule is configured.
<httpModules>
    <add name="BasicAuthentication" type="EPiServer.Security.BasicAuthentication, EPiServer" />
    ...
</httpModules>

EPiServer CMS 5 R2

Any ideas?

/Hans

#25052
Oct 10, 2008 13:17
Vote:
 

I have found a way to get it to work. But is it meant to be done like this?

The WebServices directory in R2 is handled with VirtualPathProviders and is physically the "C:\Program\EPiServer\CMS\5.2.375.7\Application\WebServices" directory. If I add an empty "WebServices" directory in the root of the site-directory and then in the IIS settings change the directory security for the "WebServices" directory. I set authentication mode to be only "Basic authentication" and I set the "Default domain:" to our domain-name. I have to use the WindowsMembership/Role or MultiplexingMembership/Role providers. I can skip the "Default domain" value in the IIS settings if I use the usernameformat=DomainAndName on the WindowsMembershipProvider. I can only log in with a windows account. If I use an SqlMembership account there is not even a request to the server and the BasicAuthentication-module.

Is this how it is meant to be setup. Or is the problem that I am testing it on a domain. Normally the scenario, on a public site with formsauthentication, is that its not on a domain. Will the set up be easier on a server without domain?

Testing on a 2003 server and on my XP. IIS 6 I guess.

Anyone?

/Hans

#25062
Oct 10, 2008 15:01
Vote:
 

Problem solved

When installing an EPiServer site the default IIS security settings are:
"Enable anonymous access" - enabled
"Integrated Windows authentication" - enabled

If "Integrated Windows authentication" is enabled the BasicAuthentication module want work. The "DecodeAuthenticationHeader" method in the BasicAuthentication module checks if the authentication-header starts with "Basic", if not it returns false and the user is never validated. If "Integrated Windows authentication" is enabled the authentication-header will start with "Negotiated" and the method will allways return false.

So if I disable "Integrated Windows authentication" on the site level I can use a SqlMemberShipProvider user to call the WebService.

Maybe this is obvious, but it wasn't for me.

/Hans

#25088
Oct 13, 2008 14:07
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.