When it comes to licensing software that is installed on an end user’s device, one of the most secure approaches that we can take as software developers, is to generate and subsequently validate a digitally signed license. With this approach, a cryptographically secure public/private key pair is created that is specific to the software being…
Tag: .NET
InSecurity
When using a .NET application that communicates with a web server, you may encounter the following error. The request was aborted: Could not create SSL/TLS secure channel. This exception message typically indicates that a secure channel could not be created due to the client application failing to specify a cryptographic protocol that is supported by…
Mailgun is a popular email delivery service that is built for developers and combines high reliability with scalability. PowerShell is a cross-platform scripting language that allows tasks to be automated on Windows, Linux, and macOS using the power of .NET. When developing PowerShell scripts that are running automatically on a schedule, it’s often useful to…
Cake (C# Make) provides a wonderfully straightforward and extensible means of automating your software builds. In my previous article, I provided some background on what Cake is and how to get started with it. I walked through how to set up Cake on your system and how to create and run your first build script….
Fancy some Cake? While cakes in all their forms are usually a delicious treat, the Cake I’m referring to is a build automation system written in C#. Nonetheless, if you haven’t used Cake before I’m sure you’ll find it just as sweet an experience! Let’s dive right in with a definition of Cake, taken from…
Security is an implicit requirement in practically every software application. As a software developer, it is very important to be aware of the security implications of any code that you write, ensuring that you are protecting users and their data. Many applications need to make use of secure random strings for various purposes. One of…
The SecureString class is a .NET type that provides an increased level of security for sensitive in-memory data. Having said that, the security benefits of SecureString have been widely debated. The general consensus is that SecureString can help to increase application security if used properly, however, the inherent advantages are somewhat limited in scope. Despite…
Sometimes when embarking on a software project you may find yourself wishing that you had a lightweight way of achieving Inversion of Control (IoC) via dependency injection. On the other hand, you might not be very familiar with the principle of IoC, but have heard it can be very beneficial and are looking for a…
Software assemblies containing managed code, such as those used by .NET applications can be easily decompiled into readable source code using free decompilation tools. This can present a challenge to application vendors who have a desire to prevent their code from being viewed or changed due to copyright or potential security concerns. For any application…