我为ServiceStack编写了一个自定义属性,其中包含以下代码:
public override void Execute(IHttpRequest request, IHttpResponse response, object requestDto) {
HttpContext.Current.User = GetUserFromOAuth2BearerToken(request);
}
这在IIS中托管时效果很好,但在使用内置的HttpListener主机时,HttpContext.Current返回null
。
使用HttpListener时,设置和获取与当前请求/响应关联的安全主体的正确语法是什么?
答案 0 :(得分:1)
使用AppHostHttpListenerBase
时,我不确定“安全主体/ System.Security.Principal”是否与当前请求/响应一起使用。
你可以拉动用户信息来做类似......
var sessionId = request.Cookies["ss-id"].ToString();
var user = request.GetCacheClient().Get<AuthUserSession>(sessionId);