asp.net-mvc - 在 IdentityServer 中获取 FacebookAuthenticationProvider 实例(Owin 应用程序)

标签 asp.net-mvc owin katana thinktecture-ident-server owin-security

我正在实现 Thinktecture IdentityServer,并且正在添加移动应用程序的能力,以向服务器提供本地获取的 Facebook 访问 token ,服务器将通过本地身份验证用户进行响应。

IdentityServer 使用 Microsoft 的 Owin 中间件进行 Facebook 身份验证。这是它被添加到应用程序的方式:

var fb = new FacebookAuthenticationOptions
{
    AuthenticationType = "Facebook",
    SignInAsAuthenticationType = signInAsType,
    AppId = "...",
    AppSecret = "..."
};

在另一个类上,我想做的是:
await [FacebookAuthenticationProvider instance].Authenticated(context);

但我不知道如何 获得我需要的 FacebookAuthenticationProvider 实例。或者这甚至是必要的?我可以只 new 一个吗?

最佳答案

我没有专门做过这件事,但如果我理解你的问题,我会在下面实现他们的用户服务

https://identityserver.github.io/Documentation/docs/advanced/userService.html

之后我会假设它以与普通 ASP.NET 相同的方式进行身份验证,您可以检查 Request.IsAuthenticated 或 User.Identity 属性以提取信息。

同样,我还没有这样做,但我认为对 Facebook 进行实际身份验证的调用将由某种链接触发,并且您已经向 Facebook 注册了一个外部登录回调 URL,该 URL 会命中您的 Controller 操作之一(此时执行身份验证逻辑),但我猜用户服务实现会为您处理大部分工作,而您只需连接它即可。

如果您正在寻找缓存 token ,请查看 -

http://brockallen.com/2013/02/21/server-side-session-token-caching-in-wif-and-thinktecture-identitymodel/

关于asp.net-mvc - 在 IdentityServer 中获取 FacebookAuthenticationProvider 实例(Owin 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823177/

相关文章:

asp.net - 如何使用 OWIN 在承载/访问 token 中定义 clientID(或其他数据)

owin - Katana+OWIN Context 获取 HTTP Referrer?

asp.net - GetExternalLoginInfo 在 Google OWIN 提供商上返回 'null'

c# - 模型/实体与复杂类型

asp.net-mvc - 为什么 T4MVC 尝试从 Html.ActionLink 运行 Controller 操作?

asp.net-mvc - 如何将IEnumerable或可查询的属性列表从Controller传递到View

asp.net-web-api - 更新到 Microsoft.AspNet.WebApi 5.2.3 和 Ninject.Web.WebApi.OwinHost 3.2.4 后找不到 GlobalConfiguration

c# - 替换 ASP.NET MVC 中的路由解析器

asp.net-mvc - 将 Asp.Net Mvc 作为 OWIN 中间件运行?

asp.net-web-api - 在 Web Api/Owin 架构中,对 '/token' 的请求在哪里处理?