Chilkat SSH – SendReqExec vs SendReqShell

Chilkat’s SSH class provides the ability to start a shell session by calling SendReqShell, or by calling QuickShell.  You can alternatively run a single remote command by calling SendReqExec. SendReqExec does the “exec” command, whereas SendReqShell (or QuickShell) starts an interactive shell session where bytes sent to the SSH server via methods such as ChannelSendString are the equivalent of keystrokes […]

Unlock Chilkat at the Start of Each ASP Page

In Classic ASP, if you want to run the same code at the start of each web page, the best approach is to create an include file containing the code and then include that file at the beginning of each page. This way, you can centralize the code and ensure it runs on every page. Steps: Create an Include File […]

Explaining the Concept of Folders in AWS S3

In AWS S3 (Simple Storage Service), the concept of folders does not exist in the traditional sense as it does in a typical file system. Instead, S3 is a flat storage system where all objects (files) are stored in a single, global namespace. However, AWS S3 simulates a folder-like structure through the use of object key naming conventions. Key Concepts: […]

Background Threads (Async) in Classic ASP

* Chilkat recommends avoiding the use of Async methods in Classic ASP.  In summary, the Chilkat Async methods run in a background thread (within Chilkat) and you don’t want the background thread to be running after the processing of the ASP page is completed. In Classic ASP, creating and managing background threads is not natively supported because Classic ASP is […]

HTTP GET Works in Browser but not in Application

If an HTTP GET works in a browser, but does not work from your application, then check to see if your site uses Cloudfare with the Browser Integrity Check turned on.   If so, then for testing purposes, temporarily turn BIC off, and try again. The Browser Integrity Check (BIC) feature in Cloudflare is a security measure designed to protect websites […]

Solution for Azure OAuth2 Error: Public clients can’t send a client secret.

Problem: When trying to do get the initial OAuth2 authorization token from Azure (using Chilkat.OAuth2), I get the following error: {“error”:”invalid_request”,”error_description”:”AADSTS90023: Public clients can’t send a client secret. Trace ID: … Solution: Chilkat.OAuth2 is for desktop apps and scripts (i.e. not code that runs on a web server), but it still behaves as a “Web App” because Chilkat.OAuth2.StartAuth starts a […]

XML Digital Signature Error “The location of where to insert the Signature was not found.”

If your application fails to to sign XML and the XmlDSigGen.LastErrorText contains the error “The location of where to insert the Signature was not found.”, it means the location your application specified to put the Signature does not exist in the XML that is to be signed. For example, if you wish to sign this XML: <abc> <xyz>test</xyz> </abc> and […]

Avoid Non-usascii Literal Strings in Source Code

It’s generally not a good idea to use literal strings containing non-usascii chars in your source code, regardless of programming language. For example, in C++ a literal string would be like this: const char *s = “44ης Οδός, αρ.2”; Or perhaps in another programming language, such as DataFlex, it looks like this: Move “44ης Οδός, αρ.4” to streetAddr If you […]

GMail OAuth2 Scope for SMTP vs REST API

There’s confusion about the OAuth2 scope required to send email via GMAIL. There are two ways to programmatically send email using your GMail account: Connecting to smtp.gmail.com using the SMTP protocol (i.e. using Chilkat.MailMan) Calling the GMail REST API over HTTPS using Chilkat.Http or Chilkat.Rest.   The scope for IMAP, POP, and SMTP access is https://mail.google.com/ See https://developers.google.com/gmail/imap/xoauth2-protocol If your […]

How to Get Malaysia MyInvois Validation Link

Question: How is it possible to get the validation link for MyInvois? Answer: See the information here:   https://sdk.myinvois.hasil.gov.my/faq/#how-to-get-validation-link-and-generate-qr-code “The QR code (quick response code) can be generated from the validation link using any QR code generator. The validation link can be created using the format below: {envbaseurl}/uuid-of-document/share/longid The {envbaseurl} will need to be replaced with e-Invoice portal Base URL. The […]