.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上都可以搜到源码,你想怎么改就怎么改
参考技术A1、
右键项目添加-
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中默认的身份认证生成的数据库名称。
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门