使用DotNetOpenAuth AuthorizedTokenResponse发送用户名

时间:2012-11-22 23:05:13

标签: dotnetopenauth

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

但是,我被困在了一点上。我想返回通常存在于HttpContext.Current.User.Identity.Name中的userName以及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);
        }

因此,在这种情况下,HttpHandler中的HttpContext.Current.User.Identity.Name为null。 (我基本上从dotnetopenAuth OAuth示例中调整了HTTPHandler。)

所以我不确定我是否在这里丢失了这个情节,但我对于如何获得经过身份验证的用户名称感到很遗憾。如果它有帮助,那么用户肯定是先前登录的,并且用户在TokenManager的AuthorizeRequestToken方法中设置(我的是在内存中)。

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

0 个答案:

没有答案