Witam,
mam taki problem, mianowicie w .NET Core 3.1 muszę wyciągnąć nazwę Usera. Próbuję użyć IHttpContextAccessor, rejestrowałem go w Startupie na 2 sposoby -services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
lub services.AddHttpContextAccessor();
, wstrzykuję ten accessor przez konstruktor, ale niestety httpContext.User.Identity.Name
zwraca mi nulla :/
Może Name jest null'em może sesji nie przekazujesz przy request'ach. Za mało danych podałeś, kodu przykładów i wszystkiego.
dodałeś atrybut "Authorize" nad kontrolerem?
[Authorize]
public class TestController : Controller
{
}
Wyrzuca mi teraz taki błąd:
InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found.
The default schemes can be set using either AddAuthentication(string defaultScheme) or
AddAuthentication(Action<AuthenticationOptions> configureOptions).```
Ty nie masz nawet skonfigurowanej autentykacji. To nie dziwne że ci nie działa
https://stackoverflow.com/questions/47324129/no-authenticationscheme-was-specified-and-there-was-no-defaultchallengescheme-f
pavarotti napisał(a):
Wyrzuca mi teraz taki błąd:
InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found. The default schemes can be set using either AddAuthentication(string defaultScheme) or AddAuthentication(Action<AuthenticationOptions> configureOptions).```
Prawdopodobnie masz nieskonfigurowaną autentykację :)
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1&tabs=visual-studio#iisiis-express
Ogólnie zależy mi, żeby dostać nazwę użytkownika i domenę z komputera, a nie przekierowanie do logowania, bo tu nie będzie logowania. @hzmzp patrzyłem na tego stacka i w sumie odpowiedź od ali zarei mi działa, ale to nie jest to czego potrzebuję, bo nie chcę aby użytkownik się logował
To pytanie co ty chcesz osiągnąć? Bo wydaje mi się że używasz złych narzędzi.
Ok, sorrki za chaotyczne, pochopne i źle opisane pytanie. Problem rozwiązany - potrzebowałem Windowsowskiej autentykacji, trzeba to było ustawić w pliku launchSettings.json