Skip to content

Instantly share code, notes, and snippets.

using ServiceStack.WebHost.Endpoints;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Security;
using ServiceStack.Common.Web;
using ServiceStack.Logging;
using ServiceStack.ServiceHost;
using ServiceStack.ServiceInterface;
@jokecamp
jokecamp / ConsoleExample.cs
Last active December 13, 2015 21:48
RSS Example Output
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using ServiceStack.Text;
using System.Runtime.Serialization;
using System.Xml;
[assembly: ContractNamespace("", ClrNamespace = "ServiceStackTester")]
@jokecamp
jokecamp / monoserver
Created August 31, 2013 16:17
Linux startup script for fastcgi-mono-server4
#!/bin/sh
### BEGIN INIT INFO
# http://yojimbo87.github.io/2010/03/14/mono-startup-script.html
# Provides: monoserve.sh
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start fastcgi mono server with hosts
@jokecamp
jokecamp / gist:7529013
Created November 18, 2013 14:50
Various ways of sanitizing XML input
/// http://seattlesoftware.wordpress.com/2008/09/11/hexadecimal-value-0-is-an-invalid-character/
/// http://stackoverflow.com/questions/157646/best-way-to-encode-text-data-for-xml/732135#732135
public string Clean(string text)
{
return new string(text.Where(XmlConvert.IsXmlChar).ToArray());
}
public static string CleanInvalidXmlChars(string text)
{
@jokecamp
jokecamp / RequestFilter
Created December 13, 2013 21:11
ServiceStack v3 Partial Updates
this.RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
var hasFilter = requestDto as IAllowPartialUpdate;
if (hasFilter != null)
{
if (httpReq.QueryString["fields"] != null)
{
// store for later
httpReq.Items.Add("Patch_Fields", httpReq.QueryString["fields"].Split(new[] {','}));
}
@jokecamp
jokecamp / example.dart
Created January 17, 2014 17:24
Dart HMAC SHA 256 Example code
import 'dart:html';
import 'dart:convert';
import 'package:crypto/crypto.dart';
void main() {
String secret = 'secret';
String message = 'Message';
List<int> secretBytes = UTF8.encode('secret');
@jokecamp
jokecamp / AppHostBase
Created June 4, 2014 15:17
ServiceStack v3.9.55.0 - Dynamically add OPTIONS to all routes
/// Call this ad the end of your app host Configure(Funq.Container container) method
private void AddOptionsVerbToAllRoutes(IServiceRoutes routes)
{
var map = EndpointHost.ServiceManager.ServiceController.RestPathMap;
foreach (var key in map.Keys)
{
foreach (RestPath rp in map[key])
{
routes.Add(rp.RequestType, rp.Path, "OPTIONS");
}
@jokecamp
jokecamp / client.html
Last active August 29, 2015 14:03
Working Socket.io 1.0 with path option
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
</head>
<body>
<form action="">
<input type="input" id="m" /><button>Send</button>
</form>
<pre id="output"></pre>
@jokecamp
jokecamp / gist:2c1a67b8f277797ecdb3
Last active January 31, 2024 01:48
Powershell HMAC SHA 256 Example
# Powershell HMAC SHA 256
$message = 'Message'
$secret = 'secret'
$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Text.Encoding]::ASCII.GetBytes($secret)
$signature = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($message))
$signature = [Convert]::ToBase64String($signature)
@jokecamp
jokecamp / package.json
Last active July 6, 2020 13:50
Demo for Passport.js authentication in a Node.js Express application
{
"name": "securehelloworld",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",