Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetAuthenticationLength()

static int System.Net.Http.Headers.AuthenticationHeaderValue.GetAuthenticationLength ( string input,
int startIndex,
out object parsedValue )
inlinestaticpackage

Definition at line 88 of file AuthenticationHeaderValue.cs.

89 {
90 parsedValue = null;
91 if (string.IsNullOrEmpty(input) || startIndex >= input.Length)
92 {
93 return 0;
94 }
95 int tokenLength = HttpRuleParser.GetTokenLength(input, startIndex);
96 if (tokenLength == 0)
97 {
98 return 0;
99 }
100 string text = null;
101 switch (tokenLength)
102 {
103 case 5:
104 text = "Basic";
105 break;
106 case 6:
107 text = "Digest";
108 break;
109 case 4:
110 text = "NTLM";
111 break;
112 case 9:
113 text = "Negotiate";
114 break;
115 }
116 string scheme = ((text != null && string.CompareOrdinal(input, startIndex, text, 0, tokenLength) == 0) ? text : input.Substring(startIndex, tokenLength));
117 int num = startIndex + tokenLength;
118 int whitespaceLength = HttpRuleParser.GetWhitespaceLength(input, num);
119 num += whitespaceLength;
120 if (num == input.Length || input[num] == ',')
121 {
122 parsedValue = new AuthenticationHeaderValue(scheme);
123 return num - startIndex;
124 }
125 if (whitespaceLength == 0)
126 {
127 return 0;
128 }
129 int num2 = num;
130 int parameterEndIndex = num;
131 if (!TrySkipFirstBlob(input, ref num, ref parameterEndIndex))
132 {
133 return 0;
134 }
135 if (num < input.Length && !TryGetParametersEndIndex(input, ref num, ref parameterEndIndex))
136 {
137 return 0;
138 }
139 string parameter = input.Substring(num2, parameterEndIndex - num2 + 1);
140 parsedValue = new AuthenticationHeaderValue(scheme, parameter);
141 return num - startIndex;
142 }
static bool TryGetParametersEndIndex(string input, ref int parseEndIndex, ref int parameterEndIndex)
static bool TrySkipFirstBlob(string input, ref int current, ref int parameterEndIndex)

References System.Net.Http.Headers.AuthenticationHeaderValue.AuthenticationHeaderValue(), System.Net.Http.HttpRuleParser.GetTokenLength(), System.Net.Http.HttpRuleParser.GetWhitespaceLength(), System.input, System.startIndex, System.text, System.Net.Http.Headers.AuthenticationHeaderValue.TryGetParametersEndIndex(), and System.Net.Http.Headers.AuthenticationHeaderValue.TrySkipFirstBlob().