asp.net-core - asp.net core 2.1 没有 AccountController
问题描述
我在 asp.net core 2.1 中意识到身份已被转移,但如果您将它们添加为脚手架项目,则可以将它们添加到解决方案中。
它为所有页面添加了所有剃刀类库。
但是我想要做的是使用旧的 AccountController 方式,客户端(移动设备或网络)可以发布到与帐户相关的 API ..
我有什么选择可以恢复旧方式或类似方式。这样我就可以使用客户端的 api
解决方案
不幸的是,它不再存在了。这种变化,以及团队对每个人无休止的 Razor Pages 推动,我个人感到非常恼火,坦率地说,这应该被丢进历史的垃圾箱</rant>
。
我个人所做的是添加脚手架,然后创建自己的控制器,将 Razor Pages 代码改组并重写为传统的 MVC 样式控制器和视图。不过,这不是一次愉快的经历,但如果你想要这样的话,我不知道还有其他办法。
不过,需要注意的一点是,该AddDefaultIdentity
扩展实际上也添加了默认 UI,就好像您已将其搭建到您的项目中一样。换句话说,即使您将所有内容移至控制器和视图并删除所有搭建的东西,Razor Pages 路由仍将优先。更不幸的是,没有很好的选择来添加AddDefaultIdentity
. 这就是您需要的:
services.AddIdentityCore<ApplicationUser>(o =>
{
// Identity config
})
.AddSignInManager()
.AddDefaultTokenProviders()
.AddEntityFrameworkStores<YourContext>();
services.ConfigureApplicationCookie(o =>
{
o.LoginPath = "/signin";
o.LogoutPath = "/signout";
o.AccessDeniedPath = "/signin";
o.ReturnUrlParameter = "returnUrl";
});
显然,在最后一点,您需要将 URL 更改为您自己的应用程序路由。
推荐阅读
- sql - 如果类型为“10”,则不显示客户名称“a”
- javascript - 从字节缓冲区转换为字符串,然后在 NodeJS / Javascript 中转换回字节
- python - “CommentForm”对象没有属性“cleaned_data”
- database - 在线程中检查与数据库的连接
- wordpress - 哪些 OpenStreetMap 瓦片服务器用于 WordPress 插件开发?
- java - 无法从 DAP 上的 http 响应读取缓冲区中的特殊字符
- c++ - 对成员函数和变量的未定义引用
- vue.js - 如何在 Vuex 中正确填充对象数组?
- google-calendar-api - 发布可由 Outlook 365 的现代身份验证订阅的 Web 日历
- java - H2 - (相当)长插入失败并出现错误 42000