CSM 10.4 Documentation

Home

Client Example: With Final URI

The following shows how to create a client for handling SAML protocol with a final URI:

                        protected void Page_Load(object sender, EventArgs e)
{
 if (Request.Form.HasKeys() && Request.Form.Keys.Cast<string>().Any(x => x == "ticket"))
 {
  var userId = Request.Form["userId"];
  var nameQualifier = Request.Form["nameQualifier"];
  var ticket = Request.Form["ticket"];
  var result = Request.Form["result"];
  var statusCode = Request.Form["statusCode"];
  var statusSubCode = Request.Form["statusSubCode"];
  var statusMessage = Request.Form["statusMessage"];

  var clientId = ConfigurationManager.AppSettings["clientId"];
  string baseuri = ConfigurationManager.AppSettings["apiBaseUri"];

  // Login to CherwellApi
  ServiceApi service = new ServiceApi(baseuri);
  TokenResponse tokenResponse = service.ServiceToken("password", clientId, string.Empty,
             userId, ticket, string.Empty,
             "SAML");

  // Create search results request
  SearchResultsRequest searchResults = new SearchResultsRequest
  {
   BusObId = "6dd53665c0c24cab86870a21cf6434ae"
  };

  // create new instance of the Searches operations
  SearchesApi searches = new SearchesApi(baseuri);

  // Setup the default header for authorization
  searches.Configuration.DefaultHeader.Add("Authorization", "Bearer " + tokenResponse.AccessToken);

  SearchResultsResponse response = searches.SearchesGetSearchResultsAdHocV1(searchResults);

  // display results indicating success
  TotalRows.Text = "There are " + response.TotalRows + " incidents";

  var dict = Request.QueryString.Keys.Cast<string>().ToDictionary(key => key, key => Request.QueryString[key]);
  var json = new JavaScriptSerializer().Serialize(dict);

  QueryParameters.Text = json;
 }
 else
 {
  // should be known if a user is attempting a SAML login to your system
  // make SAML login request to the CherwellApi
  Response.Redirect(ConfigurationManager.AppSettings["apiSamlLoginUri"]);
 }
}

                    

Was this article useful?