小编Sin*_*222的帖子

身份服务器 4 和 ASP.NET Core 身份

我正在处理的一个项目由一个 Web API、一个单页 React 应用程序和一个移动应用程序组成。从每个客户端,用户需要提供他们的用户名和密码才能访问 Web API 的受保护部分。我已经设置了一个 Identity Server 4 身份验证服务器,它使用我自己的IProfileServiceIResourceOwnerPasswordValidator接口实现,因为我使用的是 ASP.NET Core Identity。这允许 Identity Server 访问 ASP.NET Core Identity UserManagerRoleManagerSignInManagers以确定提供的用户名和密码是否有效。

我一直在使用的授权类型是“ResourceOwnerPassword”类型。我还没有将授权完全集成到单页应用程序中,但我可以将用户的用户名和密码传递给身份服务器,并生成一个令牌,我可以将其添加到我的 API 请求的标头中。

我对身份服务器和相关技术进行了更多研究,因为我对这一切都不熟悉。使用 ResourceOwnerPassword 授权类型似乎是不可取的。据我所知,似乎我应该使用隐式授权类型,但我不完全了解用户名和密码如何适应该流程。有没有人知道我应该使用哪种类型?我描述的系统是否只能使用ResourceOwnerPassword授权类型?

asp.net-core identityserver4 asp.net-core-identity

3
推荐指数
1
解决办法
1178
查看次数

.NET Standard 2.0-要使用的Microsoft.Extensions.DependencyInjection.Abstractions版本

我创建了一个.NET Standard 2.0类库,该类库具有一个扩展方法,该方法将服务注册添加到IServiceCollection实例。像这样:

using Microsoft.Extensions.DependencyInjection;

namespace Cache.Extensions
{
    public static class Extensions
    {
        public static IServiceCollection AddCacheServices(this IServiceCollection services)
        {
            services.AddTransient<IMyService, MyService>();

            return services;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了引用类型“ IServiceCollection”,系统提示我安装“ Microsoft.Extensions.DependencyInjection.Abstractions”包。版本2.2.0已安装到我的.NET标准库中。当我为我的库创建一个NuGet程序包,并且用户尝试将其安装在他们的ASP.NET Core 2.1 Web应用程序中时,他们收到一条错误消息,指示他们必须使用版本为“ Microsoft.Extensions.DependencyInjection.Abstractions”的版本2.1或类似的东西。这让我想到安装的“ Microsoft.Extensions.DependencyInjection.Abstractions”包的版本应与.NET Core版本匹配。它是否正确?我当时假设.NET软件包的版本应与.NET Core应用程序的版本匹配。

因此,这意味着在.NET Standard库中引用版本为2.2.0的'Microsoft.Extensions.DependencyInjection.Abstractions'将停止使用2.1版的.NET Core应用程序。它是否正确?

.net .net-core .net-standard-2.0

1
推荐指数
1
解决办法
271
查看次数