gpt4 book ai didi

visual-studio-2013 - VS2013(RTW): Authentication differences in SPA template vs MVC5 template?

转载 作者:行者123 更新时间:2023-12-02 21:46:17 25 4
gpt4 key购买 nike

我一直在使用 VS2013 RTW MVC 模板(用于“个人用户帐户”)中的新 ASP.NET 身份产品,它效果很好:我能够集成 Facebook 登录,同时自定义数据的方式已连载。

一切都很好,但我注意到,如果我创建一个新的 SPA 应用程序(而不是 MVC),身份验证的情况似乎会非常不同。举个例子:

来自 SPA 模板:

    public AccountController()
: this(Startup.UserManagerFactory(), Startup.OAuthOptions.AccessTokenFormat)
{
}

public AccountController(UserManager<IdentityUser> userManager,
ISecureDataFormat<AuthenticationTicket> accessTokenFormat)
{
UserManager = userManager;
AccessTokenFormat = accessTokenFormat;
}

来自 MVC 模板:

    public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}

public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}

这只是帐户 Controller 构造函数的差异。还有很多很多其他差​​异。使用 MVC 版本,我能够轻松地从 ApplicationDBContext 派生我自己的上下文类,并使用它来将我自己的表与身份验证表一起存储。我不知道如何在 SPA 模板中自定义数据存储。

此外,SPA 模板包含并使用此类: 公共(public)类ApplicationOAuthProvider:OAuthAuthorizationServerProvider

MVC 模板没有定义(或使用)此类。

我不明白为什么 MVC 模板和 SPA 模板之间需要有任何区别。

有人可以给我一些指导,解释为什么这两个模板中的身份验证处理方式如此不同吗?从头开始一个项目,两者之间有优先选择的路径吗? (看起来 MVC 模板中的代码是最好的,特别是在通过定义自定义 EF Context 类来自定义数据存储方式方面。)

谢谢...

-本

最佳答案

以 MVC 和 SPA 项目模板作为 Controller 与 ApiController 实现示例。以及 CookieAuthentication 和 oAuthAuthentication。

  • MVC 在第一个请求以及所有后续请求(具有定义了操作方法的请求)时使用 Controller 。
  • SPA 在向 SPA 发出第一个请求时使用 Controller,所有其他交互均由 ApiController 处理。
  • MVC 使用 cookie 身份验证。
  • SPA 使用 oAuth 身份验证。

现在在实际的应用程序中,我们需要将两者结合起来。声明这一点,您也可以在 SPA 中使用 IdentityModel.cs (ApplicationDBContext) 及其 MVC 项目的自定义副本。

在 oAuth 实现中, token 是在 ApplicationOAuthProviderGrantResourceOwnerCredentials 方法中颁发的。用户验证默认使用Identity框架的相同数据库。此外,oAuth 在 ApiController 中提供身份验证检查。在示例实现中,提供了 oAuth 的 ResourceOwner 流程​​,其中验证了用户的用户名和密码。

在我看来,模板是起点示例。

关于visual-studio-2013 - VS2013(RTW): Authentication differences in SPA template vs MVC5 template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19468858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com