internal IPrincipal ParseBasicAuthentication(string authData) { try { // Basic AUTH Data is a formatted Base64 String //string domain = null; string user = null; string password = null; int pos = -1; string authString = System.Text.Encoding.Default.GetString(Convert.FromBase64String(authData)); // The format is DOMAIN\username:password // Domain is optional pos = authString.IndexOf(':'); // parse the password off the end password = authString.Substring(pos + 1); // discard the password authString = authString.Substring(0, pos); // check if there is a domain pos = authString.IndexOf('\\'); if (pos > 0) { //domain = authString.Substring (0, pos); user = authString.Substring(pos); } else { user = authString; } HttpListenerBasicIdentity identity = new HttpListenerBasicIdentity(user, password); // TODO: What are the roles MS sets return(new GenericPrincipal(identity, new string[0])); } catch (Exception) { // Invalid auth data is swallowed silently return(null); } }
internal IPrincipal ParseBasicAuthentication(string authData) { try { // Basic AUTH Data is a formatted Base64 String //string domain = null; string user = null; string password = null; int pos = -1; string authString = System.Text.Encoding.Default.GetString(Convert.FromBase64String(authData)); // The format is DOMAIN\username:password // Domain is optional pos = authString.IndexOf(':'); // parse the password off the end password = authString.Substring(pos + 1); // discard the password authString = authString.Substring(0, pos); // check if there is a domain pos = authString.IndexOf('\\'); if (pos > 0) { //domain = authString.Substring (0, pos); user = authString.Substring(pos); } else { user = authString; } HttpListenerBasicIdentity identity = new HttpListenerBasicIdentity(user, password); // TODO: What are the roles MS sets return new GenericPrincipal(identity, new string[0]); } catch (Exception) { // Invalid auth data is swallowed silently return null; } }