private Dictionary<string, string> authorizationHeader(OSHttpRequest request)
{
if ((new List<string>(request.Headers.AllKeys)).Contains("authorization"))
{
string auth = request.Headers["authorization"];
if (auth.Substring(0, 7) == "Digest ")
{
string[] authBits = Regex.Split(auth.Substring(7), ", ");
Dictionary<string, string> authorization = new Dictionary<string, string>(authBits.Length);
Regex authBitRegex = new Regex("^\".+\"$");
foreach (string authBit in authBits)
{
int pos = authBit.IndexOf('=');
if (pos >= 0)
{
authorization[authBit.Substring(0, pos)] = authBitRegex.IsMatch(authBit.Substring(pos + 1)) ? authBit.Substring(pos + 2, authBit.Length - pos - 3) : authBit.Substring(pos + 1);
}
}
return authorization;
}
}
return null;
}