Need some help with this.
Anyone got any tips/examples on how to integrate an external system to utilise EPiServer's authentication web service?
I couldn't add it the web reference - complain of some logging in error, so I used the 'using EPiServer.WebServices' instead. It picked it up, as VS2k5's intellisense picked up class names, etc.
Anyway here is the code I used.
Authenticate authenticate = new Authenticate();
authenticate.Validate("[username]", "[password]", new EPiServer.Core.IPAddress(Request.UserHostAddress));
// just output the username to label for test reasons
Username.Text = authenticate.User.Identity.Name;
SignatureHeader signature = authenticate.Signature;
if (signature.IsAuthentic)
{
Label1.Text = "user logged in";
}
else
{
Label1.Text = "user not logged in";
}
I've replaced username/password with those strings for obvious reasons ;)
Anyway, I can never get it to log on. It keeps bring back the username as 'Anonymous' and not being logged in.
Anyone got any ideas?
Hi Jackie!
Unfortunately, the Authenticate webservice requires the
connection to be secured and trusted (encrypted) through
the use of a specific SoapHeader (called SignatureHeader).
I say unfortunately, because this SignatureHeader is not
documented and was really only intended to be called
from one EPiServer to another, for example in Enterprise
scenarios, when doing mirroring et.c.
I believe it will be very difficult to mimic this
soapheader in your own client code without the source code
available, so the real alternative solution would be to
wrap up the necessary EPiServer API calls into your own
webservice.
Best regards,
Johan Olofsson
EPiServer AB