【发布时间】:2015-04-29 03:46:48
【问题描述】:
我正在创建一个简单的 WebApi,它允许用户与 Facebook 连接。当我从 facebook 取回 accessToken 时,我正在调用 RegisterExternal 来创建一个 Asp.Net 身份记录并存储来自令牌的声明。这些声明还包括我稍后查询 facebook 图所需的访问令牌。到目前为止,一切似乎都很好。
我遇到的问题是阅读声明。我可以看到它们在我的数据库中,我只是不知道如何查询这些数据。我试过了
var claimsIdentity = User.Identity as ClaimsIdentity;
但这会给我 2 个索赔 a)“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name” b) 角色
这两个都是颁发者 LOCAL AUTHORITY(老实说,我不确定它们是什么时候创建的,因为我没有明确添加这些)。所以我相信他们要么混淆了我将索赔保存到数据库中而不是错误类型的发行人
await userManager.AddClaimAsync(user.Id, new Claim("urn:facebook:access_token", accessTokenClaim.Value, ClaimValueTypes.String, "LOCAL AUTHORITY"));
或者我访问声明的代码不正确。
有人能解释一下吗?
【问题讨论】:
-
你找到"LOCAL AUTHORITY" claims的来源了吗?
-
不。仍然为此苦苦挣扎,最终针对该成员创建了我自己的属性来保存其中的一些数据
标签: asp.net facebook asp.net-web-api oauth-2.0 claims-based-identity