在HttpListener托管的服务中,HttpContext.Current.User的等价物是什么?

时间:2013-09-04 12:54:18

标签: servicestack httpcontext httplistener httplistenerrequest

我为ServiceStack编写了一个自定义属性,其中包含以下代码:

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

这在IIS中托管时效果很好,但在使用内置的HttpListener主机时,HttpContext.Current返回null

使用HttpListener时,设置和获取与当前请求/响应关联的安全主体的正确语法是什么?

1 个答案:

答案 0 :(得分:1)

使用AppHostHttpListenerBase时,我不确定“安全主体/ System.Security.Principal”是否与当前请求/响应一起使用。

你可以拉动用户信息来做类似......

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