Tôi đang cố gắng gọi Java Web Service từ một ứng dụng web MVC3 .NET bằng WSE 3.0.Làm cách nào để thêm thuộc tính EncodingType vào phần tử Nonce của UsernameToken trong WSE 3.0 (.NET)
Tuy nhiên, dịch vụ web yêu cầu thuộc tính "EncodingType" trên phần tử Nonce của UsernameToken. Sau đây là một phong bì SOAP mẫu mà làm việc một cách chính xác với dịch vụ web này Java:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v1="http://schema.mydomain.org/sms/v1_0">
<soap:Header>
<wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>myUsername</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">myPassword</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">XQkp6oYc3DRv41cxkSTW8w==</wsse:Nonce>
<wsu:Created>2011-09-13T20:50:08.355Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<v1:ping/>
</soap:Body>
</soap:Envelope>
Sau đây là phong bì SOAP tạo ra từ các proxy VS2010 sản xuất (bị bắt trong Fiddler):
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<wsse:Security env:mustUnderstand="true">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-111f922b-72c1-4057-bce4-f6555552ce6a">
<wsse:Username>myUsername</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">myPassword</wsse:Password>
<wsse:Nonce>qYse3Lor9sAJ9pKPefgkKQ==</wsse:Nonce>
<wsu:Created>2011-09-13T20:50:38Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</env:Header>
<soap:Body>
<v1:ping/>
</soap:Body>
</soap:Envelope>
Nếu thuộc tính này bị thiếu, dịch vụ web này trả về, "Mã thông báo bảo mật không hợp lệ đã được cung cấp (Đã xảy ra lỗi khi xử lý Mã thông báo người dùng)"
Làm cách nào để thêm thuộc tính EncodingType?
Xin chào, tôi gặp sự cố chính xác này. Rất vui khi biết có một lá cờ, nó sẽ đẹp hơn nếu bạn cũng đề cập đến lá cờ nào, bây giờ tôi vẫn phải xem xét. – toongeorges