SQL injection is a common attack vector that remains one of the most prevalent security risks for applications today. One of the reasons SQL injection attacks are so pervasive is the fact that injection vulnerabilities are very easy for attackers to discover and exploit, sometimes with devastating consequences. On the other hand, mitigating SQL injection…
Tag: .NET
Tuples are a very useful feature of the C# language; they allow more than one value to be grouped and passed back and forth without needing to define additional types. As we’ll discover later in this article, tuples are particularly convenient for returning more than one value from a method, avoiding the need for ugly…
InNoSQL
In my previous two posts, I covered how to set up a MongoDB development environment and then followed this up with how to get started with MongoDB queries. While it’s great to have a development environment set up and know how to run queries from the command line, ultimately you’ll need to figure out how…
IIS (Internet Information Services) remains a widely used web server for hosting websites, FTP (File Transfer Protocol) sites, and other applications on Windows servers. While the graphical IIS Manager interface is great for setting things up initially and for providing a visual overview of your web configuration, there are also some great use cases for…
While developing a Windows Service, it is important to be able to debug it like you would a regular desktop or web application. Debugging Windows Services isn’t quite as straightforward as debugging standard Windows, Console, or Web applications. However, when developing a .NET Windows Service it isn’t difficult to set up your project to support…
Have you ever come across the need to use more than one version of an assembly within the same .NET application? Assembly loading can be a somewhat tricky subject when there are multiple versions of the same assembly for a .NET application to choose from. This can result in problems for both static assembly references…
Downloading files programmatically is a common task that most programming languages expose different APIs for. I believe it is useful to have examples to refer to for how to accomplish this in your language of choice, both synchronously and asynchronously. This article covers how to download files with C# using the classes and methods that…
Many apps today need to store data locally on the device they are running on in order to allow the user to continue to perform useful functions while offline or when network connectivity is unreliable. SQLite is an ideal solution for both simple and complex local data storage requirements. Whether you are storing small sets…
As software developers, working with processes is something that we frequently need to do. Whether it’s checking if a specific process is running, stopping a process, or creating a new process, it is useful to have a reference point for how to accomplish each of these tasks. In the sections below, I’m going to cover…