我需要创建一个支持身份验证的单页应用程序。我们的企业已经有了身份验证服务。
我只是不知道从哪里开始。
场景:
用户试图访问 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/