2

次のコードを含む ServiceStack のカスタム属性を作成しました。

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

これは、IIS でホストしている場合はうまく機能しますが、組み込みの HttpListener ホストを使用している場合、HttpContext.Current は を返しますnull

HttpListener を使用するときに、現在の要求/応答に関連付けられているセキュリティ プリンシパルを設定および取得するための正しい構文は何ですか?

4

1 に答える 1

1

を使用する場合、「セキュリティ プリンシパル/System.Security.Principal」が現在の要求/応答で使用できるかどうかわかりませんAppHostHttpListenerBase

次のような方法でユーザー情報を取得できます...

var sessionId = request.Cookies["ss-id"].ToString();
var user = request.GetCacheClient().Get<AuthUserSession>(sessionId);
于 2013-09-06T22:36:06.653 に答える