2

有没有人尝试过将 IdentityManager 与 vNext 一起使用?

我在使用app.UseIdentityManager(IdentityManagerOptions)扩展方法时遇到问题。

它不存在。

所以我尝试通过将所有与服务器相关的方面更改为管理器来使用为UseIdentityServer(在此处找到)制作的扩展方法。当我这样做时,我得到了System.NullReferenceException第 43 行。

任何关于如何使用扩展方法的建议都将不胜感激

4

2 回答 2

0

我正在使用 ASPNET 5 beta6,我得到了这个工作。

尝试使用在 dev 分支上的 Samples repo 中找到的这个更新IApplicationBuilder的扩展。重新调整方法以接受 IdentityManagerOptions 而不是IdentityServerOptions编辑构建器以UseIdentityManager

简而言之,这是我的扩展方法的样子

public static class IApplicationBuilderExtensions
{
    public static void UseIdentityManager(this IApplicationBuilder app, IdentityManagerOptions options)
    {
        app.UseOwin(addToPipeline =>
        {
            addToPipeline(next =>
            {
                var builder = new AppBuilder();

                var provider = app.ApplicationServices.GetService<IDataProtectionProvider>();

                builder.Properties["security.DataProtectionProvider"] =
                    new DataProtectionProviderDelegate(purposes =>
                    {
                        var dataProtection = provider.CreateProtector(string.Join(",", purposes));
                        return new DataProtectionTuple(dataProtection.Protect, dataProtection.Unprotect);
                    });

                builder.UseIdentityManager(options);

                var appFunc =
                    builder.Build(typeof (Func<IDictionary<string, object>, Task>)) as
                        Func<IDictionary<string, object>, Task>;
                return appFunc;
            });
        });
    }
}
于 2015-08-27T06:34:19.417 回答
-2

我正在使用 vNext,我注意到很多事情都发生了变化,并将继续发生变化。

为了我自己的需要,我已经能够相当容易地启动和运行身份,并且我必须采取两个步骤才能使其正常运行。我所做的也应该对你有用。

在您的 StartUp.cs 中,您需要确保将以下内容添加到 ConfigureServices 方法中:

services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

除此之外,您还需要配置您的应用程序以使用身份,为此您需要在 Configure() 方法中执行以下操作:

app.UseIdentity();
于 2015-06-13T15:34:15.417 回答