有没有人尝试过将 IdentityManager 与 vNext 一起使用?
我在使用app.UseIdentityManager(IdentityManagerOptions)
扩展方法时遇到问题。
它不存在。
所以我尝试通过将所有与服务器相关的方面更改为管理器来使用为UseIdentityServer
(在此处找到)制作的扩展方法。当我这样做时,我得到了System.NullReferenceException
第 43 行。
任何关于如何使用扩展方法的建议都将不胜感激
有没有人尝试过将 IdentityManager 与 vNext 一起使用?
我在使用app.UseIdentityManager(IdentityManagerOptions)
扩展方法时遇到问题。
它不存在。
所以我尝试通过将所有与服务器相关的方面更改为管理器来使用为UseIdentityServer
(在此处找到)制作的扩展方法。当我这样做时,我得到了System.NullReferenceException
第 43 行。
任何关于如何使用扩展方法的建议都将不胜感激
我正在使用 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;
});
});
}
}
我正在使用 vNext,我注意到很多事情都发生了变化,并将继续发生变化。
为了我自己的需要,我已经能够相当容易地启动和运行身份,并且我必须采取两个步骤才能使其正常运行。我所做的也应该对你有用。
在您的 StartUp.cs 中,您需要确保将以下内容添加到 ConfigureServices 方法中:
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
除此之外,您还需要配置您的应用程序以使用身份,为此您需要在 Configure() 方法中执行以下操作:
app.UseIdentity();