身份验证类型名称如何在 asp.net vnext 中注册
Posted
技术标签:
【中文标题】身份验证类型名称如何在 asp.net vnext 中注册【英文标题】:How are Authentication type names registered in asp.net vnext 【发布时间】:2014-09-01 14:36:39 【问题描述】:因此,我正在更新 MongoDB 的开源 asp.net 身份提供程序,以使用 Asp.Net Identity 3.0(又名 vnext)。到目前为止,我已经能够注册提供程序并创建用户,但是在使用 SignInManager 时,如果提供了正确的用户名/密码,我会收到错误
InvalidOperationException:以下身份验证类型不是 接受:Microsoft.AspNet.Identity.Application
我已将错误追踪到此处 https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNet.PipelineCore/DefaultHttpResponse.cs
但我似乎看不到将 SignInContext.Accepted 名称添加到 SignInContext 的位置。
我正在使用 VS14 CTP2 中使用的所有 vnext 库的 Alpha-2 版本
下面是我的 Startup.cs
public void Configure(IBuilder app)
try
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();
// app.UseLogRequests("try");
app.UseErrorPage(ErrorPageOptions.ShowAll);
app.UseServices(services =>
services.AddIdentity<MyUser>()
.AddMongoDB<MyUser>(configuration.Get("Data:MongoIdentity:ConnectionString"), configuration.Get("Data:MongoIdentity:DBName"))
.AddHttpSignIn<MyUser>();
// Add MVC services to the services container
services.AddMvc();
);
// Add static files to the request pipeline
app.UseStaticFiles();
app.UseMvc(routes =>
routes.MapRoute(
name: "default",
template: "controller/action/id?",
defaults: new controller = "Home", action = "Index" );
routes.MapRoute(
name: "api",
template: "api/controller/action",
defaults: new action = "Index" );
);
// Add cookie-based authentication to the request pipeline
app.UseCookieAuthentication(new CookieAuthenticationOptions
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
);
catch (Exception ex)
Console.Write(ex.ToString());
throw;
【问题讨论】:
我会非常感兴趣的代码/包,它可以在 vNext 下使用带有 Identity 的 MongoDB。可以分享一下吗? 所以它仍然相当原始,还没有实现所有功能,但可以使用。我会在接下来的几天里有机会时尝试把它扔到 Github 上。 同时我也实现了我的解决方案。 【参考方案1】:原来我在 CookieAuthentication 之前设置了 MVC,所以当它尝试对用户进行身份验证时,AuthenticationType 没有在 MVC 中注册。由于 MVC 依赖于身份验证,因此我只需要在 MVC 之前将其升级并注册。
【讨论】:
以上是关于身份验证类型名称如何在 asp.net vnext 中注册的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net vnext 上使用不记名令牌身份验证刷新令牌
如何更改 asp.net identity 3 (vnext) 使用的表名?
从 ASP.NET vNext beta5 移动到 beta7 后 JWT Bearer 令牌身份验证错误
如何在 ASP.NET 5 MVC 6 (vNext) 中定义 Identity 的密码规则?
在 ASP.NET vNext 中使用 Ninject 时出现编译器错误 CS0246(未找到类型或命名空间)
使用 AspNet.Security.OpenIdConnect.Server (ASP.NET vNext) 进行自定义生命周期验证