Search code examples
.netsingle-sign-oninteropnetweaver

EvalPortalTicket returns error code 9 when parsing SAP Login Ticket in a .NET application


I'm trying to parse SAP Login Ticket (I'm getting ticket string from MYSAPSSO2 cookie) in a .NET application following the sample provided by SAP. Both sapssoext.dll and sapsecu.dll are placed in System32 folder but I'm getting an error which number is 9.

Here is the ticket string

AjExMDAgAA1wb3J0YWw6QVRJQUFNiAATYmFzaWNhdXRoZW50aWNhdGlvbgEABkFUSUFBTQIAAzAwMAMAA1BNRAQADDIwMTMwMTA3MTAzNAUABAAAAAgKAAZBVElBQU3/AQUwggEBBgkqhkiG9w0BBwKggfMwgfACAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGB0DCBzQIBATAiMB0xDDAKBgNVBAMTA1BNRDENMAsGA1UECxMESjJFRQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwMTA3MTAzNDE1WjAjBgkqhkiG9w0BCQQxFgQUYsJ!74Po!/9lrPqttjZXqcfBSTAwCQYHKoZIzjgEAwQvMC0CFD55F60sUc2gyG0gZpbdtLqJ6MBkAhUAiQ87p3inLvWchkphT5Lfl7PJ1mA

Here is the details logged in trace.txt file

---------------------------------------------------
trc file: "trace.txt", trc level: 1, release: "720"
---------------------------------------------------
[Thr 2172] Mon Jan 07 13:51:44 2013
[Thr 2172] Call function MySapLoadTicketKey 
[Thr 2172] Ticket key as new PSE loaded 
[Thr 2172] Cleanup of function, memory PSE created 
[Thr 2172] Leave function MySapLoadTicketKey with rc = 0.
[Thr 2172] Mon Jan 07 13:52:15 2013
[Thr 2172] MySapEvalLogonTicketEx was called.
[Thr 2172] Unconverted ticket is the following: >>>AjExMDAgAA1wb3J0YWw6QVRJQUFNiAATYmFzaWNhdXRoZW50aWNhdGlvbgEABkFUSUFBTQIAAzAwMAMAA1BNRAQADDIwMTMwMTA3MTAzNAUABAAAAAgKAAZBVElBQU3/AQUwggEBBgkqhkiG9w0BBwKggfMwgfACAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGB0DCBzQIBATAiMB0xDDAKBgNVBAMTA1BNRDENMAsGA1UECxMESjJFRQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwMTA3MTAzNDE1WjAjBgkqhkiG9w0BCQQxFgQUYsJ!74Po!/9lrPqttjZXqcfBSTAwCQYHKoZIzjgEAwQvMC0CFD55F60sUc2gyG0gZpbdtLqJ6MBkAhUAiQ87p3inLvWchkphT5Lfl7PJ1mA=<<<
[Thr 2172] Initialized variables...
[Thr 2172] *** ERROR => Struct size 128 is not 128 [ssoxxext.c   459]
[Thr 2172] *** ERROR => MySapEvalLogonTicketEx returns 9. [ssoxxext.c   958]
[Thr 2172] End of function MySapEvalLogonTicketEx.

It seems it is internal error in "ssoxxext.c" ... any suggestions?


Solution

  • SAP SSO EXT Lib (ssoextlib.dll) supports two ways of parsing login ticket

    1. Instantiate an object from SAPSSOEXT class and use the EvalPortalTicket method to eval login ticket.
    2. Use the static method SAPSSOEXT.EvalSAPTicket to eval login ticket

    so based on ticket type that portal sends if it is SAP or Portal ticket, the appropriate method should be used.

    For more info http://scn.sap.com/thread/1634545