2

我一直在关注 DotNetOpenAuth 库中的 Oauth Provider 示例。到目前为止一切都很好,已经在两个不同的站点中实现了消费者和提供者。

不过,我被困在一点点上。我想返回通常存在于 HttpContext.Current.User.Identity.Name 中的用户名以及 AuthorizedTokenResponse 的额外数据。(这类似于 twitter 在他们的 OAuth 响应中添加“screen_name”的方式)

else if ((requestAccessToken = request as AuthorizedTokenRequest) != null)
        {
            string userName = context.User.Identity.Name; // how do you tie this to the logged on user? I am soooo stupid.

            AuthorizedTokenResponse response = _oAuthServiceProvider.PrepareAccessTokenMessage(requestAccessToken);
            response.ExtraData.Add("screen_name", userName); 
            _oAuthServiceProvider.Channel.Send(response);
        }

所以在这种情况下 HttpContext.Current.User.Identity.Name 在 HttpHandler 中为空。(我基本上已经从 dotnetopenAuth OAuth 示例中改编了 HTTPHandler。)

所以我不确定我是否在这里失去了情节,但我不知道如何获得经过身份验证的用户名。如果有帮助,那么用户肯定是以前登录过的,并且用户是在 TokenManager 的 AuthorizeRequestToken 方法中设置的(我的在内存中)。

那么,在我发回 AuthorizedTokenResponse 之前,有什么方法可以使用存储在 AuthorizeRequestToken 方法中的 DotNetOpenAuth 获取用户名?

4

0 回答 0