Web Core API'mdaki bu kod, kimliği doğrulanmış bir kullanıcı olduğumu doğrular, ancak kullanıcı adımı alamıyorum, bunun yerine uygulama havuzunun adını alıyorum. Bunu nasıl düzeltirim?Kullanıcı adımı, Windows kimlik doğrulamalı Web Çekirdeği API'sinde neden alamıyorum?
var testa = User.Identity.GetType();
NLogger.Info($"testa = {testa}");
var testd = User.Identity.IsAuthenticated;
NLogger.Info($"testd = {testd}");
var loggedInUser = User.Identity.Name;
NLogger.Info($"loggedInUser = {loggedInUser}");
Benim günlük dosyamda;
testa = System.Security.Principal.WindowsIdentity
testd = True
loggedInUser = IIS APPPOOL\SIR.WEBUI
Denetleyici için [Authorize] etiketini kullanıyorum ve anonim kimlik doğrulaması devre dışı.
Postacı yöntemini arıyorum, Tamam çalışıyor, LoggedInUser doğru. Ancak kodumdan aradığımda yukarıda gösterilen yanlış oturum açma kullanıcı yanıtını alıyorum. İstemci uygulamasından web api'yi çağırmak için kullandığım kod;
public static async Task<IEnumerable<ContractDto>> GetAllForUser()
{
using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }))
{
client.BaseAddress = new Uri(AppSettings.ServerPathApi);
var path = GetPath("getallforuser");
var response = await client.GetAsync(path);
response.EnsureSuccessStatusCode();
var stringResult = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<IEnumerable<ContractDto>>(stringResult);
}
}
IIS'de uygulama havuzu türünü çeşitli seçeneklerin tümüne ayarladım; applicationpoolidentity, networkservice, localservice, localsystem ve her seferinde uygulamayı test etti. Ne yeryüzünde özlüyorum?
bir buraya https://stackoverflow.com/a/12675503/5233410 – Nkosi
emin değilim benzer bir konuya cevabı kabul deneyebilirsiniz Sorun bu ise, ancak IIS – Shahbaz
@ Nkosi'de "Kullanıcı Profili Yükle" seçeneğini true olarak ayarlamayı denemenizi öneririm, ancak bu işe yaramadı. Web Çekirdeği API'sini kullanıyorum ve kimliğe bürünmenin farklı şekilde çalıştığını düşünüyorum. Belki kimliğe bürünme kullanıyor olmalıyım? Ama sonra AJAX kullanırken bunu yapmaya gerek yok, o zaman neden C# farklı olmalı? – arame3333