在 ASP.NET WebApi 2 中自定义承载令牌 JSON 结果
Posted
技术标签:
【中文标题】在 ASP.NET WebApi 2 中自定义承载令牌 JSON 结果【英文标题】:Customize Bearer token JSON result in ASP.NET WebApi 2 【发布时间】:2014-08-10 21:39:00 【问题描述】:我演练this official ASP.NET tutorial,不记名令牌发布如下 JSON。
"access_token":"boQtj0SCGz2GFGz[...]",
"token_type":"bearer",
"expires_in":1209599,
"userName":"Alice",
".issued":"Mon, 14 Oct 2013 06:53:32 GMT",
".expires":"Mon, 28 Oct 2013 06:53:32 GMT"
我想在上述结果中添加用户配置文件属性,以减少来自客户的请求数量。示例如下...
"access_token":"boQtj0SCGz2GFGz[...]",
"token_type":"bearer",
"expires_in":1209599,
"userName":"Alice",
".issued":"Mon, 14 Oct 2013 06:53:32 GMT",
".expires":"Mon, 28 Oct 2013 06:53:32 GMT",
"Notifications":35,
"IsEventMember":true,
"Promotion":324372
我使用的 oauth 提供程序来自默认的 ASP.NET 模板 (ApplicationOAuthProvider.cs
),OAuthOption
如下。
OAuthOptions = new OAuthAuthorizationServerOptions
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
;
我该怎么做?
请注意,我的问题与 adding extra claims 不同。
【问题讨论】:
发现我的问题重复了:***.com/q/24078905/361100 【参考方案1】:这就是解决方案:
public override async Task TokenEndpoint(OAuthTokenEndpointContext context)
context.AdditionalResponseParameters.Add("username", "user@mail.com");
return Task.FromResult<object>(null);
【讨论】:
以上是关于在 ASP.NET WebApi 2 中自定义承载令牌 JSON 结果的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net Web API 2第十课——使用OWIN自承载Web API
ASP.Net MVC 2 中自定义成员资格提供程序中的角色分组
如何在 asp.net web api 2 中自定义对我自己的一组表的身份验证?