Has anyone managed to do this? I thought about using sessions but they
dont want to work for me… Here’s what I’m doing as a little test:
class NotLoggedIn < Exception
end
class ProjectsController < ApplicationController
wsdl_service_name ‘Projects’
web_service_api ProjectsApi
def Login
@session[:loggedIn] = true
end
def GetProjects
if @session[:loggedIn]
return Project.find(:all)
else
raise NotLoggedIn, “You are not logged in!”
end
end
def CreateProject(name)
Project.create(:name => name)
return name << “Wee”
end
end
Nothing fancy, but doing
ProjectService.Login();
ProjectService.GetProjects();
in c#, gets a NotLoggedIn exception. Any ideas?
To take a guess (since I’m exploring Web services from the other side of
things) I would expect that rails is using a cookie to maintain its
session.
In order for the second call to connect to the session in the rails
application the cookies that are set in the response to the first call (
ProjectService.Login()) need to be propagated back to the second call (
ProjectService.GetProjects()).
If this isn’t happening then the call to GetProjects will not see a
session
cookie and will create a new session.
I would expect that .Net does the session and cookie management
implicitly
on the client. But it would seem from what I’ve been reading that Java
doesn’t do this by default so maybe .Net is copying Java a little too
closely on this one.
Ah, that would make sense I suppose. Well, what do you think about
having a list of currently logged in ips in a table? This app doesn’t
need to be hugely realtime (and I doubt I’ll have massive tables, beyond
a few meg even).
Unless you’ve got any other ideas?