当前位置: 首页 > 知识库问答 >
问题:

支持社交登录、个人帐户、帐户管理、授权屏幕和ASP.NET标识的ASP.NET 5 Web API。它存在吗?

韩博厚
2023-03-14

从本质上说,这是对这个问题的一个更新,它是近两年前由aspnet.security.openidconnect.server著名的@pinpoint非常有帮助地回答的。

我只是把怒骂放在底部,对于那些喜欢沉溺于凌晨4点失意的开发者的亵渎。

我正在开始一些新的项目,出于我自己的原因,我希望使用ASP.NET技术的最新版本(ASP.NET5、vNext和MVC6)来开始。

  • 使用令牌保护REST API
  • 支持单独登录
  • 对社交登录的支持
  • ASP.NET 5(几乎..)
  • ASP.NET标识(包括其所有用户数据存储和出色的策略内容)
  • MVC 6

通常可以使用OAuth2进行身份验证。

    null

我已经离开授权工作一年多了,但我回来了,男孩的事情已经改变了。它与OWIN、Katana、ASP.NET Identity、IdentityServer3、aspnet.security.OpenIdConnect.Server都相当混淆。似乎只有(尽管非常出色的)辅助项目可以完全支持基于.NET的安全令牌服务器。所谓“辅助项目”,我的意思不是冒犯这些伟大的项目,只是没有微软和/或付费支持。

我想进行大量的开发工作,但我总是在无法想象不受欢迎的体系结构中执行身份验证时停滞不前。

这样一个标准的架构场景被微软如此灵巧地考虑,在我看来是如此不可思议。

共有1个答案

邓元白
2023-03-14

在这个波涛汹涌、风很大、吓人的互联网上,有没有一个例子可以证明以下几点:

基于ASP.NET 5/MVC 6的REST API,使用ASP.NET标识和OAuth2进行安全保护,使用AccountController创建帐户并为社交登录或个人登录提供令牌,使用可爱的ASP.NET标识用户存储来保持整洁,使用密码恢复和一系列标准的、现代的帐户资料,以及确认权限请求的授权屏幕(“XXX想访问您的帐户,可以吗?”等等)

我目前正在开发一个名为openiddict的全新身份服务器:它基于ASP.NET identity 3(随ASP.NET 5一起提供),并在内部使用aspnet.security.openidconnect.server来控制整个OIDC流。它的目的是提供最简单的方法来开始使用令牌身份验证,并且它与完整的.NET framework和新的.NET核心兼容。

当然,它既不是由Microsoft开发也不是由Microsoft创建的(尽管建议他们支持我们),但它符合您的需求:它附带了一个控制授权体验(即同意书部分)的内部控制器,并依赖于您添加到应用程序中的AccountController来处理本地/外部身份验证过程。

它仍处于早期阶段,您需要ASP.NET5/DNX RC2的夜间构建来使用它,但它很容易配置。您只需从ConfigureSreservices调用AddOpenIDdict()并从Configure添加UseOpenIDdict()。您可以在GitHub存储库中找到更多信息。

public void ConfigureServices(IServiceCollection services) {
    services.AddMvc();

    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

    services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders()
        .AddOpenIddict(); // Add the OpenIddict services after registering Identity.
}


public void Configure(IApplicationBuilder app) {
    app.UseIdentity();

    // Add all the external providers you need before registering OpenIddict:
    app.UseGoogleAuthentication();
    app.UseFacebookAuthentication();

    app.UseOpenIddict();
}
 类似资料:
  • 我正在使用VS 2013 ASP.NET 4.5.1,并使用个人用户帐户选项创建了一个内部webforms应用程序进行身份验证。我想使用LDAP对用户进行身份验证,并使用为个人用户帐户创建的SQL DB选项保存用户信息和角色。我们没有Active Directory联合身份验证服务(AD FS),因此无法使用内部验证方法。 AD用户名将存储在SQL DB中 如何使用LDAP对用户进行身份验证,然后

  • 我正在开发一个android应用程序,它有可能提供大量的统计信息。我想把这些数据保存在我的谷歌硬盘上,以便以后分析。 然而,我对谷歌API是新手,几乎不知道如何通过编程方式授权我的帐户。这是我到目前为止的情况。 代码运行成功,文件已在设备上创建,但我想将其发送到我的google驱动器。 我认为主要问题是我不知道帐户名称凭据应该是什么。我有一种感觉,它不是“myacc@gmail.com”。有什么方

  • 这是一个PHP代码片段,来自我正在全局转换为PDO的项目。这就是功能。登录页面的php文件。显然,它没有完全转换为PDO,所以不要批评它,但基本上是在登录中。php文件我让它访问这个方法,并从表单中传递数据库(在中是必需的)、用户名和密码。我设置了一个基本查询,以查找使用表单用户名输入的所有用户。然后我准备并执行查询。然后,我需要一个行计数,因此我在查询上设置了一个$rowcount变量,运行ro

  • 我正在尝试构建一个使用数据库的应用程序,允许用户以管理员或员工身份登录 管理员几乎没有选项: 添加新员工, 列出所有员工和 为选定员工添加待办事项 受雇者 登录时显示待办事项 我遇到的第一个问题是: 我应该为所有记录(员工)只创建一个表吗 第二个问题是,我不知道如何为成功登录的用户显示项目列表。如何访问登录用户的数据?

  • 我正面临一个奇怪的admob登录问题,无法找到任何解释这个确切的问题在网上。问题来了:--我有一个admob账户--我在这个账户上安装了一个应用程序链接--应用商店上发布的应用程序完美地显示了广告--但在此之后的3、4天,我就无法登录我的admob账户了。与此同时,该应用程序已经停止显示这些广告。-每次我尝试登录时,admob网页都告诉我“您当前以charlesdurandjp@gmail.com

  • 问题内容: 我使用PuTTY SSH会话从Windows 10笔记本电脑登录到服务器。 我的本地Windows笔记本电脑上没有Docker,因此所有工作都在远程服务器上完成。 我可以使用终端会话在远程服务器上执行所有Docker命令。 但是,当我尝试将映像保存到Docker集线器时,尝试登录时,请使用: 我收到以下错误消息: 在远程服务器上创建映像时,没有收到任何错误消息。 我也没有在远程服务器上