.net core 生成的身份认证的代码在哪?还有生成的注册和登录页面在哪?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core 生成的身份认证的代码在哪?还有生成的注册和登录页面在哪?相关的知识,希望对你有一定的参考价值。

我用VS2017创建了一个“WEB应用程序(模型视图控制器)”,并且将身份验证改为“个人用户账户”,选择“存储应用内的用户账户”。生成后的项目可以直接运行,点击注册或登录都能显示对应的页面,并且注册和登录功能都可用。但是我却找不到注册和登录页面,也找不到登录和注册功能的代码。
例如:运行项目后点击注册按钮,跳转路径https://localhost:44345/Identity/Account/Register,并且页面正常显示,但是项目中只有一个Home控制器,根本就没有Account控制,所以没找到Register对应的页面,和Register功能代码。
刚开始研究.net core,请问这些页面和代码在哪啊?求指点。

.NET Core默认使用了ids4,而且基于.NET Core构建的网站大多数都是使用的这个

注册和登陆的前端页面都在这里,这里使用了Razor语法,后台的登陆认证功能都集成在identityserver4里面了

startup里面使用依赖注入引用了ids4

追问

你说“后台的登陆认证功能都集成在identityserver4里面了”,那这意思就是登录注册页面和登录逻辑是没法改的吗?要改就只能自己重新写一套,然后将注册和登录页面指定到新页面吗?

追答

你这么说我就知道你没什么开发经验
但凡被大众普遍接受的组件通常可定制性都极高,会用的都随意定制了
图一就是登录验证的逻辑,你看得懂知道什么意思就可以随意改,看不懂当然只能自己慢慢写了

追问

恩,确实没什么经验,^_^。图有点儿小啊,看不太清除,我看图一应该是默认创建的_LoginPartial.cshtml视图页是吧,你说这个就是登录验证的逻辑?这个页面不就是判断是否已经登录了吗?然后根据登录状态显示不用的菜单内容。并没有具体的登录逻辑啊,我说的登录逻辑是指的验证用户名密码那块的代码。求指点。

追答

图小可以左键点击图片向右拖动新建标签页打开图片

登录验证逻辑被集成到Razor类库里面了

另外所有的这些代码都是开源的github上都可以搜到源码,你想怎么改就怎么改

参考技术A

1、

右键项目添加-

2、

添加基架 - 选择标识

3、

选择你需要修改的页面布局或是全选,选择你的上下文

4、添加就OK了。你想要的loginView就出来了。

参考技术B 不知道为什么要问这些 参考技术C 这个可能是FTP软件用于暂存的目录。你退出重新登录以下看看还有没有,若果删不来也可以不用管他,就是这么简单。

.Net Core HttpClient 摘要式身份验证

【中文标题】.Net Core HttpClient 摘要式身份验证【英文标题】:.Net Core HttpClient Digest Authentication 【发布时间】:2020-01-27 21:44:56 【问题描述】:

在 .Net Core 3.1 应用程序中使用 Mongo Atlas API,但我无法让 HttpClient 处理来自摘要身份验证的挑战。

代码发送第一个请求,得到 401 响应,然后没有通过正确的身份验证重新发送。

下面是我一直在尝试的代码

var domain = "https://cloud.mongodb.com/";
var credCache = new CredentialCache();
credCache.Add(new Uri(domain),"Digest", new NetworkCredential(user,secret));
var httpClient = new HttpClient( new HttpClientHandler  Credentials = credCache);
var answer = await httpClient.GetAsync(new Uri($"domainapi/atlas/v1.0/groups/groupId/databaseUsers"));

这是我收到的回复

StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:

  Date: Mon, 27 Jan 2020 21:03:14 GMT
  WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="generatedNonce", algorithm=MD5, qop="auth", stale=false
  Content-Type: application/json
  Content-Length: 106

我已成功发送 curl 请求,因此我确定我的用户/密码/组是正确的。

是否有人发现该代码有问题,或者知道我可以做些什么来进一步调试此问题?

【问题讨论】:

【参考方案1】:

显然我们遇到了完全相同的问题,或者至少在我的同事找到解决方案之前我也遇到过。

在 2.1 中对 HttpClient 内部进行了很多更改以支持新的 SocketsHttpHandler,使用这行代码返回到 2.0 的功能,它应该可以再次工作,把它放在Main 或者在你调用之前的某个地方制作。

AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);

否则您必须先发送一个请求以获取401 响应从WwwAuthenticate 标头中获取nonce,并且您可能还需要在标头中设置更多字段。

干杯!

在 reddit 上的这篇帖子中找到它:https://www.reddit.com/r/dotnet/comments/9yailz/weird_dotnet_core_httpclient_bug_maybe/ea07edd/

【讨论】:

此解决方法在 .Net 5 中不再有效,有人找到解决方案了吗? 我最终创建了一个类似于***.com/questions/3109507/…的自定义处理程序 @Eric 你应该发布处理程序,如果它对你有用吗?

以上是关于.net core 生成的身份认证的代码在哪?还有生成的注册和登录页面在哪?的主要内容,如果未能解决你的问题,请参考以下文章

更改.net core 3中默认的身份认证生成的数据库名称。

.Net Core手撸一个基于Token的权限认证

.NET Core 身份作为 UI 取消注册

手把手教你 .NET Core 3.1 JWT身份认证

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门

ASP.NET Core 使用 JWT 自定义角色/策略授权需要实现的接口