2017-10-02 6 views
0

나는 사용자 ID 이름을 얻을 수있는 ASP .NET 코어는 이전의 ASP .NET으로 IIS (AspNetCoreModule와)ASP .NET 핵심 IIS 호스팅 사용자 ID 이름은 IsAuthenticated는 비어 있고 = 거짓

에 DLL을 실행 해요 :

HttpContext.Current.User.Identity.Name 

IIS 컨텍스트에서 직접 호출 되었기 때문입니다. ASP .NET 코어

는 결과에 대한 널 :

this.Request.User.Identity.Name 

IIS가 전달되지 않았거나 어쩌면 내 AspNetCore 모듈을받지 않는 것으로 보인다. 어떻게 사용자 신원 이름을받을 수 있습니까?

답변

0

나는이 문제를 해결했다. 이걸 어떻게 디버깅했는지 :

IIS에서 사용자 자격 증명이 전달되었는지 확실하지 않았기 때문에 코드에서 HTTP 헤더 요청을 로그 파일로 인쇄하기로 결정했습니다. 대답은 거기에 있었다. 나는 IIS가 Basic Authentication으로 작동한다는 것을 알았다.

기본 인증이 AspNetCore에서 지원되지 않는 것 같습니다. 따라서 'Authorization'헤더의 정보를 구문 분석하고 새 사용자 ID를 만드는 미들웨어 구현을 추가했습니다.

나는 내 자신의 구현을했지만 다음과 같은 기사는 나에게 많은 도움이 :

https://blog.dangl.me/archive/http-basic-authentication-in-aspnet-core-projects/

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware