Мы новички в. NET Core. У нас есть приложение ASP. NET Core 2.1, которое размещено нашей командой системного администратора на сервере Linux с использованием прокси Apache 2.2. Пользователи будут запускать URL-адрес нашего приложения в браузере, и прокси Apache получит запрос и направит его нашему приложению на Linux сервере.
Все работает нормально, и мы можем продолжать разработку и развертывание на наш. Теперь мы начали защищать наше приложение, и наша фирма решила добавить в наше приложение аутентификацию Windows. После того, как команда системного администрирования выполнила свою работу, мы начали получать значения ключей ниже в заголовке запроса.
Мы пытаемся написать код C# в нашем приложении ASP. NET Core 2.1, чтобы получить имя пользователя. Мы считаем, что значение ключа: авторизация, которое зашифровано, будет содержать имя пользователя. Мы пробовали так много способов расшифровать его, но не смогли его расшифровать.
Может кто-нибудь, пожалуйста, помогите и сообщите нам, как получить имя пользователя в этом случае.
Пожалуйста, посмотрите ниже код, который я пытаюсь.
if (!Request.Headers.ContainsKey("Authorization"))
{
string cookieValue = Request.Headers["Authorization"];
cookieValue= cookieValue.Substring("NTLM ".Length).Trim();
UTF8Encoding specialUtf8Encoding = new UTF8Encoding(false, true);
// below code do not work. How to get plain text ?
//byte[] protectedBytes = Base64UrlTextEncoder.Decode(cookieValue);
//string plainText = System.Text.ASCIIEncoding.ASCII.GetString(protectedBytes);
}
Ниже показано, что мы видим в ключах и значениях заголовка запроса
Key: Cache-Control, Value=max-age=0
Key: Connection, Value=Keep-Alive
Key: Accept, Value=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng
Key: Accept-Encoding, Value=gzip, deflate, br
Key: Accept-Language, Value=en-US,en;q=0.9
Key: Authorization, Value=NTLM TlRMTVNTUAADAAAAGAAYAIAAAABUAVQBmAAAAAwADABYAAAACAAIAGQAAAAUABQAbAAAAAAAAADsAQAABYKIogoA7kIAAAAPNSOWmAbXlPi5fhYGSO54RVAATQBBAF8ATgBCAHAAYwBhAG8AQQBOAFAAWABEAFcAVAAxADYANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhmacrZwRfdlIkhEBBfdWjAQEAAAAAAACNce03PTXWAcU/7pwxmsPkAAAAAAIADABQAE0AQQBfAE4AQgABABAAQQBOAFQAVgBQAFcAUwAxAAQAJgBhAG0AZgAuAHAAYQBjAGkAZgBpAGMAbABpAGYAZQAuAG4A
Key: Cookie, Value=.AspNetCore.Antiforgery.Xf_oDoHBPRA=CfDJ8LQZvjci-adCv0t9XQ2PRfiQ6oFCKJDXb8Xe8d7Gd6wOtJc97d7fVTEUt8xrxjk9XYfqmyeGyO7iLAbWLKRTGPUVo9v2_zoRnCqVSrADnZPhBToSzxuoLf9u2QNcFTvkbYEOaNvphVotB4saPlb_osw
Key: Host, Value=dev.myweb.net:4443
Key: User-Agent, Value=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
Key: Upgrade-Insecure-Requests, Value=1
Key: Sec-Fetch-Site, Value=none
Key: Sec-Fetch-Mode, Value=navigate
Key: Sec-Fetch-User, Value=?1
Key: Sec-Fetch-Dest, Value=document
Key: site, Value=dev.myweb.net
Key: port, Value=443
Key: X-Forwarded-For, Value=11.123.13.456
Key: X-Forwarded-Host, Value=dev.myweb.net:4443
Key: X-Forwarded-Server, Value=dev.myweb.net