Hi Srivatsn -- Thanks for the quick reply. I don't actually have UserServiceWse defined on the python side; I assumed that would be dynamically-generated from the WSDL call and that the appropriate methods would be found through introspectino. Is that incorrect? Is there some sort of stub-generator I need to run in order to auto-generate the UserService client class?
Ramon Srivatsn Narayanan wrote: > Looks like Webservice.Load is not returning a WebServicesClientProtocol. In > the C# world you are instantiating a UserServiceWse. You could do the same in > python so: > userService = UserServiceWse() > > I assume the definition of that class would look like this: > def UserServiceWse(WebServicesClientProtocol): > def __init__(self): #The constructor. > self.blah = foo > ... > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ramon M. > Felciano @ Yahoo > Sent: Sunday, March 09, 2008 11:09 PM > To: [email protected] > Cc: Ramon Felciano > Subject: [IronPython] Newbie: IronPython and WSE 3.0 (translation from C# > example)? > > Hi -- > > I'm trying to hook up IronPython to web services secured by Web Services > Enhancements (WSE) 3.0. I have some C# sample code that I'm trying to > convert to Python and am running into some trouble. I'm a C# and Windows > ..NET newbie (using IronPython from the commmandline), so the libraries > in question are foreign to me, so I was hoping someone could help me > resolve this. The sample code shows: > > -------------------------- > using Microsoft.Web.Services3; > using Microsoft.Web.Services3.Design; > using Microsoft.Web.Services3.Security; > using Microsoft.Web.Services3.Security.Tokens; > namespace TpIntegration > { > public class TpPolicy : Policy { > public TpPolicy() { > Assertions.Add(new UsernameOverTransportAssertion()); > } > public static UsernameToken GetUsernameToken(string username, string > password, PasswordOption passwordOption) { > UsernameToken token = new UsernameToken(username, password, > passwordOption); > ISecurityTokenManager securityTokenManager = > > SecurityTokenManager.GetSecurityTokenManagerByTokenType(WSTrust.TokenTypes.UsernameToken); > securityTokenManager.CacheSecurityToken(token); > return token; > } > public static void ApplyAutheticationTicket(WebServicesClientProtocol > protocol, string userName, string password) { > UsernameToken token = GetUsernameToken(userName, password, > PasswordOption.SendPlainText); > protocol.SetClientCredential(token); > protocol.SetPolicy(new TpPolicy()); > } > } > } > -------------------------- > > This is then called using something like this: > > -------------------------- > UserServiceWse userService = new UserServiceWse(); > TpPolicy.ApplyAutheticationTicket(userService, "admin", "admin"); > -------------------------- > > I've taken a swing at converting it: > > -------------------------- > import Microsoft.Web.Services3 > import Microsoft.Web.Services3.Design > import Microsoft.Web.Services3.Security > import Microsoft.Web.Services3.Security.Tokens > > def getUsernameToken(username, password, passwordOption): > token = > Microsoft.Web.Services3.Security.Tokens.UsernameToken(username, > password, passwordOption) > securityTokenManager = > Microsoft.Web.Services3.Security.Tokens.SecurityTokenManager.GetSecurityTokenManagerByTokenType(Microsoft.Web.Services3.Security.WSTrust.TokenTypes.UsernameToken) > securityTokenManager.CacheSecurityToken(token) > return token > > def applyAutheticationTicket(protocol, userName, password): > token = getUsernameToken(userName, password, > Microsoft.Web.Services3.Security.Tokens.PasswordOption.SendPlainText) > protocol.SetClientCredential(token) > protocol.SetPolicy(TpPolicy()) > -------------------------- > > but when calling it: > > -------------------------- > userService = > WebService.Load('http://www.example.com/Services/UserService.asmx') > username = "test" > password = "test" > applyAutheticationTicket(userService, username, password) > -------------------------- > > I get the following error: > > AttributeError: 'UserService' object has no attribute 'SetClientCredential' > > Any suggestions on how to debug this further? In case it matters, this > is code from > http://www.targetprocess.com/download/tp20/TP_2_Web_Services_Guide.pdf. > > Thanks! > > Ramon > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
