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?
on 2006-01-12 09:15
on 2006-01-12 12:00
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.
on 2006-01-12 15:54
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?