Concurrent License (RAM) Relay Server

DicomObjects’ concurrent licensing model allows users to set up an internal relay server using Asp.net (as a web service) which acts as a gateway for clients that do not have any Internet access. Each time a client machine sends a request out, that request is sent directly to the relay server, which in turn polls the live DicomObjects licensing server. As soon as a response is recieved by the relay server, it then sends that response back to the original client.

Create the ASP.Net Web Service:

 
public class RamService : System.Web.Services.WebService
{
    [WebMethod]
    public byte[] GetRamLicenseToken(string AuthorisationString, string MachineID, 
        string UserInfo, out string error)
    {
        try
        {
            // Consumes our online licence server's RamLicense2 web method
            MCLicenseServer1.LicenseServiceSoapClient client = new MCLicenseServer1.LicenseServiceSoapClient();
            var token= client.RamLicense2(AuthorisationString, MachineID, DateTime.Now.Ticks, UserInfo, out error);
            if (string.IsNullOrWhiteSpace(error) && token != null)
                return token;
            else
            {
                return null;
            }
        }
        catch (Exception ex)
        {
            error = ex.Message;
            return null;
        }            
    }
}

Add a reference to the Medical Connections licensing server in your relay server application

Add a reference to the web service in your client application so that it is pointing to your internal relay server

Client code pointing to your ASP.Net Web Service

 
if (DicomLicense.InstalledLicenses.Count == 0)
{
       RamService1.RamServiceSoapClient client = new RamService1.RamServiceSoapClient();
       string error = "";
       // Consumes local licence server's GetRamLicenseToken web method
       byte[] token = client.GetRamLicenseToken("CONCURRENT-KEY-HERE", DicomLicense.MachineID, "COMPANY NAME HERE", out error);
       if (string.IsNullOrWhiteSpace(error) && token != null)
       {
          DicomLicense.AddRamLicense(token);
          MessageBox.Show(getLicenseDetails(DicomLicense.CurrentLicense));
       }
}

private string getLicenseDetails(DicomLicense l)
{
    return $@"Allowed Functions: {l.AllowedFunctions}{Environment.NewLine}
            AuthorisationID:  {l.AuthorisationID}{Environment.NewLine}
            Enpiry Date:  {l.Expiry.ToString("yyyy-MM-dd HH:mm:ss")}{Environment.NewLine}
            IsRamLicense: {l.IsRamLicense}{Environment.NewLine}
            License ID:   {l.LicenseID}{Environment.NewLine}
            License Token: {l.LicenseToken}{Environment.NewLine}
            License Type: {l.LicenseType}{Environment.NewLine}";
}

Each time a workstation RAM licence expires, the client will request a new key directly from your relay server, which in turn will poll the online Medical Connections server.


We use cookies to give you the best possible experience on our website. By continuing to use this website, you agree with our use of cookies. for more information please click HERE