2

내가 다음 코드를 가지고 ServiceStack에 대한 사용자 정의 속성을 작성했습니다 : IIS에서 호스팅 할 때,하지만 내장 된 HTTP Listener에 호스트를 사용하는 경우이 아름답게 작동HttpListener-hosted 서비스에서 HttpContext.Current.User와 동일한 것은 무엇입니까?

public override void Execute(IHttpRequest request, IHttpResponse response, object requestDto) { 
    HttpContext.Current.User = GetUserFromOAuth2BearerToken(request); 
} 

을 HttpContext.Current는 null를 반환합니다.

HttpListener를 사용할 때 현재 요청/응답과 관련된 보안 주체를 설정하고 가져 오는 올바른 구문은 무엇입니까?

답변

1

AppHostHttpListenerBase을 사용할 때 'security principal/System.Security.Principal'이 현재 요청/응답에서 사용 가능한지 확실하지 않습니다.

당신이 좋아하는 일을하고 사용자 inforamation을 얻을 풀 수 ...

var sessionId = request.Cookies["ss-id"].ToString(); 
var user = request.GetCacheClient().Get<AuthUserSession>(sessionId); 
+0

좋은 생각,하지만 난 세션 쿠키 또는 사용자 세션의 아무 개념이 없다 있도록 상태를 저장으로 OAuth2 인증을 사용하고 있습니다. .. OAuth2 베어러 토큰을 기반으로 현재 HTTP 컨텍스트를 할당하는 메서드에는 사용자 지정 특성이 있습니다. System.Threading을 사용하여 할 수 있지만 오히려하지 않을 수 있습니다 ... –