DICOM Extended Negotiation of User Identity

DicomObjects.NET supports extended negotation of user identity as defined in DICOM supplement 99:

ftp://medical.nema.org/medical/dicom/final/sup99_ft.pdf

Here is sample code for how to access this data using DicomObjects.NET

SCU/Client

using DicomObjects.Enums;

DicomAssociation cn = new DicomAssociation();
cn.Identity = new DicomAssociation.UserIdentity();
cn.Identity.IdentityType = UserIdentityType.Kerberos;
cn.Identity.ResponseType = UserIdentityResponseType.PositiveResponseRequested;
cn.Identity.PrimaryField = new byte[] { 1, 2, 3, 4 }; // the Kerberos Service Ticket, or the username
cn.RequestedContexts.Add(...);
cn.Open(...);
byte[] resp = cn.ServerResponse; // will be null is ResponseType is set to NoResponseRequested
  

SCP/Server

using DicomObjects.Enums;

void server_AssociationRequest(object sender, DicomServer.AssociationRequestArgs e)
{
   DicomAssociation.UserIdentity ident = e.Association.Identity;
   //You can check the user identity and send a response back if Positive Response is requested
   if (e.Association.Identity.ResponseType == UserIdentityResponseType.PositiveResponseRequested)
   {
      if (e.Association.Identity.IdentityType == DicomObjects.Enums.UserIdentityType.Kerberos)
      e.Association.Identity.ServerResponse = new byte[] { 1, 1, 1, 1 }; // the Kerberos Server ticket
   }
}


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