c# - OWIN 自定义身份验证服务

标签 c# authentication single-page-application

我需要创建一个支持身份验证的单页应用程序。我们的企业已经有了身份验证服务。

我只是不知道从哪里开始。

场景:

用户试图访问 Controller 中 protected 方法:

[Authorize]
public class MeController : Controller

由于他没有登录,他被重定向到登录页面:

 [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                //Call business authentication service
                if (GetClient().OpenSession(model.username, model.password))
                    // Set Cookie? Implement some Owin interfaces?
            }   
            // If we got this far, something failed, redisplay form
            return View(model);
        }

如您所见,这是在 opensession 下,我需要做一些事情来创建 cookie 或...??

此外,由于我们想使用 Facebook 和 Google OWIN 身份验证,我认为我可以实现自己的 OWIN 类吗?

总而言之,这里的想法是不使用SQL SERVER或任何其他数据库来存储用户信息。只调用我们自己的服务?

怎么办?

最佳答案

这是您应该开始使用 OWIN 进行身份验证的链接 https://msdn.microsoft.com/en-us/magazine/dn745860.aspx

开始之前,先熟悉一下 OWIN 的工作原理。另请注意,OWIN 不支持无 cookie 登录,但另一方面它支持 Claims,这不仅仅是一个角色提供者。

Katana codeplex 有针对 Facebook 和 Google 的 OWIN 预开发 OAuth 实现页。另外如果你想集成更多的供应商here是一个github项目,开发了几乎所有的OAuth provider。

祝你好运!

关于c# - OWIN 自定义身份验证服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30383160/

相关文章:

javascript - 无法使用pushstate和各种js路由器进行路由

c# - 如何通过 Controller 操作和 ajax 保护文件下载?

c# - 具有相同方法名称的多级继承c#

java - Android Facebook 登录回调不起作用

symfony - 如何在 Symfony2 重定向到登录页面之前获取先前的 url

javascript - 使用@document 在没有 JS 的情况下进行 SPA 路由

single-page-application - 如何处理/忽略 durandal 的错误路线?

c# - Avro.AvroException : Array does not implement non-generic IList in field 异常

c# 包含单词异常编号

PHP登录问题