【问题标题】:ASP.NET MVC: Authenticating a user without creating the userASP.NET MVC:在不创建用户的情况下对用户进行身份验证
【发布时间】:2014-06-16 13:44:15
【问题描述】:

我正在创建一个 MVC 5 应用程序,该应用程序通过 Facebook 对用户进行身份验证以访问特定资源。

我希望能够使用 cookie 对该用户进行身份验证,就好像他们以经过身份验证的用户身份手动登录到我的网站一样。

但是,此用户不得实际创建为站点使用的会员系统中的用户,因为它是为管理员保留的。

这可能吗?

我试图通过手动创建身份来做到这一点,但这完全是通过将 MVC 帐户控制器中的现有代码拼凑起来的黑客尝试...

var authUser = new ApplicationUser() { UserName = me.email, Email = me.email };
var manager = HttpContext.GetOwinContext().Authentication;
manager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
manager.SignIn(new AuthenticationProperties() { IsPersistent = true }, await HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().CreateIdentityAsync(authUser, DefaultAuthenticationTypes.ApplicationCookie));

它似乎几乎可以工作,但随后它抱怨用户 ID 不存在。

我假设这意味着它正在尝试使用我的用户数据库来验证用户,正如我所说的,这不是我们想要的。

那么是否可以使用自定义的默认 asp.net 帐户实现手动验证用户身份并保留经过身份验证的 cookie,但不创建实际用户?

请让我知道我可以提供哪些更多信息来帮助找到解决方案。谢谢

【问题讨论】:

    标签: asp.net-mvc authentication


    【解决方案1】:

    提交后不久,我发现了这个问题:Storing/Retrieving user data without database when using OWIN cookie authentication

    这似乎完全符合我的需要,确实做到了,谢谢并抱歉重复了这个问题

    【讨论】:

      猜你喜欢
      • 2016-12-15
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      相关资源
      最近更新 更多