【发布时间】:2015-11-14 17:07:55
【问题描述】:
我刚刚创建了一个新的 MVC 应用程序来了解 OAuth2。首先,我在 Facebook 注册为开发人员,并在我的应用程序中启用了 Facebook 身份提供程序:
Startup.Auth.cs
app.UseFacebookAuthentication(
appId: "something",
appSecret: "secret");
身份验证直接开箱即用,但我想知道我的 Homecontroller 的 User 属性是否有任何 Facebook 相关信息。它没有,我想知道为什么。我查看了 Katana/Owin 资源如何实现 Facebook 提供程序,并找到了一个设置自定义声明的地方:
FacebookAuthenticationHandler.cs
context.Identity.AddClaim(new Claim("urn:facebook:name", context.Name, XmlSchemaString, Options.AuthenticationType));
但是当我到达我的控制器并检查身份的声明属性时,一旦由 Owin 提供程序设置,这些自定义声明都没有。当我检查 数据库(AspNetUserClaims 表)我发现它完全被遗弃了。
是否有理由不将声明保留到数据库?数据库甚至是存储这些声明的好地方吗(至少有一个表)?我是否必须在我的应用程序中配置任何内容才能获得声明?或者还有一点我可以让声明在整个用户会话中保持有效?
【问题讨论】:
标签: c# asp.net asp.net-mvc owin claims