A Windows Forms application for bulk updating Conax Conditional Access (CA) Client PINs via WSDL Web Services.
WSDLConax is a specialized desktop utility designed for broadcast and conditional access operators using the Conax CA system. It provides a graphical interface to interact with the Conax CaClientAdministrationService web service, allowing operators to:
- Update individual CA Client PINs securely.
- Perform bulk PIN updates by importing CSV files containing client lists.
- Monitor transaction status and logs in real-time.
- Manage service authentication (Username/Password + SSL Certificate handling).
Built with Visual Basic .NET and Windows Forms, this tool streamlines the operational workflow for managing subscriber security credentials in Conax environments.
- 🔐 Secure WSDL Integration: Connects to Conax
CaClientAdministrationServiceEndpointwith configurable credentials. - 📝 Single & Bulk Operations:
- Update a single client's PIN instantly.
- Upload a CSV file to update hundreds of clients in one go.
- 📊 CSV Import & Grid View:
- Parses delimited CSV files automatically.
- Displays client data in a sortable
DataGridView. - Select specific columns (Client IDs) for batch processing.
- 📈 Real-Time Feedback:
- Progress bar visualization during bulk operations.
- Status column updates with
TransactionStatus.StatusCodefor each row. - Detailed error logging via message boxes and status labels.
- ⚙️ SSL/Certificate Handling: Includes logic to bypass strict certificate validation (useful for internal/test environments) via
X509CertificateValidationMode.None.
WSDLConax/
├── WSDLApp.sln # Visual Studio Solution file
├── WSDLApp/ # Main Application Directory
│ ├── FormUpdateCaPinToGivenValue.vb # Main logic: CSV parsing, WSDL calls, UI events
│ ├── FormUpdateCaPinToGivenValue.Designer.vb # Auto-generated UI layout
│ ├── app.config # App settings & WSDL endpoint configuration
│ ├── WSDLApp.vbproj # Project file (.NET Framework)
│ ├── My Project/ # VB.NET application properties
│ └── Service References/ # Generated WSDL proxy classes (caClientServiceReference)
└── README.md # This file
- Operating System: Windows (7/10/11 or Server)
- Runtime: .NET Framework (Version matching the project, likely 4.0+)
- IDE: Visual Studio 2019/2022 (for building/modifying)
- Access: Valid credentials and network access to a running Conax CAS (Conditional Access System) with exposed WSDL services.
Before running the application, you must configure the connection details in the code or app.config.
Ensure the CaClientAdministrationServiceEndpoint URL is correctly added as a Service Reference in Visual Studio (caClientServiceReference).
In FormUpdateCaPinToGivenValue.vb, locate the createService() function and update the hardcoded credentials (or move them to a secure config file):
Dim username As String = "sms01" ' <-- Change to your Conax WS user
Dim password As String = "Ayq123456" ' <-- Change to your Conax WS passwordBy default, the app disables certificate validation for flexibility in test environments:
myAuthentication.CertificateValidationMode = ServiceModel.Security.X509CertificateValidationMode.None
⚠️ Security Warning: For production environments, implement proper certificate validation instead of disabling it.
Open WSDLApp.sln in Visual Studio and run the project, or compile and run the .exe.
- Enter the CA Client ID in the masked text box.
- Enter the new CA PIN.
- Click "Start" (or the equivalent single-update button).
- Check the log label for
TransactionStatus.StatusCode(e.g., "Success").
- Prepare CSV: Create a CSV file where one column contains the Client IDs.
Date,Name,ClientId,SmartcardId 2023-01-01,John Doe,02151615924,SC12345
- Load File: Click "Browse" and select your CSV file.
- Select Column: Click on the Header of the column containing the Client IDs in the grid. The selected column name will appear in the "Client ID" label.
- Set PIN: Enter the target PIN in the "PIN for All" field (
MaskedTextBoxCaClientIdAll). - Execute: Click "Start All".
- The app will iterate through every row in the selected column.
- It will call
UpdateCaPinToGivenValuefor each client. - The "Update Status" column will populate with the API response code for each row.
The core operation relies on the Conax method:
- Operation:
UpdateCaPinToGivenValue - Request Type:
UpdateCaPinToGivenValueRequestTypeCaClientId: The unique identifier for the subscriber device/card.CaPin: The new PIN value to set.
- Response Type:
CaClientUpdateResponseType- Returns
TransactionStatus.StatusCodeindicating success or failure reason.
- Returns
The application uses Try...Catch blocks to handle:
- Network timeouts.
- SOAP faults from the Conax server.
- Invalid CSV formats.
- Null/Empty input validation.
- Hardcoded Credentials: The current version stores usernames/passwords in the source code. Do not deploy to production without moving these to encrypted config files or environment variables.
- Certificate Bypass: SSL validation is disabled by default. Enable strict validation for public-facing or production networks.
- Performance: Bulk operations are synchronous; large files (10k+ rows) may freeze the UI thread. Consider implementing
BackgroundWorkerorasync/awaitfor massive datasets. - Legacy Code: Last updated ~2019. May require updates for newer .NET versions or Conax API changes.
As this is a specialized utility for Conax operators:
- Fork the repository.
- Implement improvements (e.g., async processing, secure config storage).
- Submit a Pull Request with a description of the changes.
This project is licensed under the MIT License—see the LICENSE file for details.
- Conax AS (now part of Nokia) for the Conditional Access System and Web Service definitions.
- Microsoft for the .NET Framework and Visual Basic tools.
💬 Support: This tool is provided "as-is" for operators familiar with Conax systems. For issues regarding the Conax API itself, please consult your Conax/Nokia support representative.
Last updated: March 2026