Asp.net core asp.net core 2.1没有AccountController
我意识到在asp.net core 2.1中,身份已经改变,但如果您将其作为脚手架项目添加,则可以将其添加到解决方案中 它为所有页面添加所有razor类库 然而,我想做的是使用旧的AccountController方式,客户端(移动或web)可以发布到与帐户相关的APIAsp.net core asp.net core 2.1没有AccountController,asp.net-core,asp.net-identity,Asp.net Core,Asp.net Identity,我意识到在asp.net core 2.1中,身份已经改变,但如果您将其作为脚手架项目添加,则可以将其添加到解决方案中 它为所有页面添加所有razor类库 然而,我想做的是使用旧的AccountController方式,客户端(移动或web)可以发布到与帐户相关的API 我有什么选择可以让旧的方式回来或类似的。这样我就可以使用客户端的api了不幸的是,它已经不存在了。我个人对这一变化感到非常恼火,团队没完没了地把剃须刀页面推到每个人身上,坦率地说,这本应该被扔到历史的垃圾箱里 我个人所做的是添加
我有什么选择可以让旧的方式回来或类似的。这样我就可以使用客户端的api了不幸的是,它已经不存在了。我个人对这一变化感到非常恼火,团队没完没了地把剃须刀页面推到每个人身上,坦率地说,这本应该被扔到历史的垃圾箱里 我个人所做的是添加脚手架,然后创建我自己的控制器,将Razor页面代码洗牌并重写到传统MVC风格的控制器和视图中。虽然这不是一次愉快的经历,但如果你想这样做,我知道没有别的办法 但是需要注意的是,
AddDefaultIdentity
扩展实际上也添加了默认的UI,就像您将其构建到项目中一样。换句话说,即使您将所有内容移到控制器和视图并删除所有搭建的内容,Razor页面路由仍将优先。更不幸的是,除了添加AddDefaultIdentity
,没有好的选择。这是您需要的:
services.AddIdentityCore(o=>
{
//标识配置
})
.AddSignInManager()的名称
.AddDefaultTokenProviders()
.AddEntityFrameworkStores();
services.configureApplicationOkie(o=>
{
o、 LoginPath=“/signin”;
o、 LogoutPath=“/signout”;
o、 AccessDeniedPath=“/signin”;
o、 ReturnUrlParameter=“returnUrl”;
});
显然,在最后一点中,您会将URL更改为您自己的应用程序路由。这是否有帮助:@SehaxX,是的,请意识到这一点,但我没有任何可供客户端使用的API。似乎它只适用于web?您是否尝试过此兼容版本,其中可能还有用于登录的链接:services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.version_2_1).AddRazorPagesOptions(options=>{options.AllowAreas=true;options.Conventions.AuthorizeAreaFolder(“Identity”,“/Account/Manage”);options.Conventions.authorizedAreaPage(“标识”,“/Account/Logout”);});