C#, XML, XML Prefixes, and Signing XML Documents with Prefixes

For those tasked with integrating an API from a company that starts with an R and ends with a one. Here are some links that may prove useful:

Digitally Signing an XML Document and Verifying the Signature

Here’s a PDF of the article, in case it ever get’s taken down.

I didn’t use C# to create the XML document. Instead, I used a Razor template to generate the XML.

How did I sign an XML document with an XML prefix?

Reference this Stack Overflow thread. Check the answer submitted by George Dima. [Thank you George.]  Reference in case it ever gets taken down.

I didn’t realize that you can’t sign an XML document with a prefix in .NET using the objects provided as is. It took me awhile to figure out that this was causing a validation issue with the XML signature.

How do I Http Post in C#?

Reference the code here or just download it here.

There’s an easier way using the WebClient object, but if you can’t use the latest version of the .NET framework, the above will work fine in all cases.



Ubuntu – Archiving a directory and Encrypting the File using 7zip and OpenSSL

First archive the directory using 7zip.

7z a filename.7z targetdirectory

Next, encrypt the file using OpenSSL. Executing the command will ask the user for a password

openssl aes-256-cbc -in filename.7z -out file.enc

You can decrypt the file using the following command. Executing the command will ask the user for a password.

openssl aes-256-cbc -d -in file.enc -out filename.7z


SQL Server – Finding Resource Intesive or Expensive Queries

It’s suggested you use SQL Profiler trace data ove layed against system information found in the performance monitor. However, to get a quick look at what queries may be slowing down performance , run the following -

select ss.sum_execution_count
    , t.text
    , ss.sum_total_elapsed_time
    , ss.sum_total_logical_reads
    , ss.sum_total_logical_writes
        (Select s.plan_handle
        , sum(s.execution_count) sum_execution_count
        , sum(s.total_elapsed_time) sum_total_elapsed_time
        , sum(s.total_worker_time) sum_total_worker_time
        , sum(s.total_logical_reads) sum_total_logical_reads
        , sum(s.total_logical_writes) sum_total_logical_writes
        from sys.dm_exec_query_stats s
        group by s.plan_handle
        ) as ss
        cross apply sys.dm_exec_sql_text(ss.plan_handle) t
        order by sum_total_logical_reads DESC

ASP.NET Parts of Absolute Path

// Gets the base url in the following format: 
// "http(s)://domain(:port)/AppPath"


Ubuntu Change Boot Order for a Service

Use the update-rc.d command.

First remove the link fron the /etc/init.d directory to the rc.d directories

sudo update-rc.d -f my_old_script remove

Then change the boot order. The following updates the scripts boot order to 98.

sudo update-rc.d my_script defaults 98

This command can also be used to remove or add a service during boot.