asp.net-mvc – “挑战”一词代表什么?
ControllerBase类具有Challenge方法,该方法返回ChallengeResult类的对象.
CookieAuthenticationOptions类具有AutomaticChallenge属性. 我相信ChallengeResult与外部登录有关.但它如何实际运作? “挑战”一词来自哪里?这里面有什么. 解决方法
ChallengeResult是一个ActionResult,在执行时会挑战给定的身份验证方案的处理程序.或者,如果未指定,则为默认质询方案的处理程序.
Source code for ChallengeResult
例如,您可以这样做: return Challenge(JwtBearerDefaults.AuthenticationScheme); //Can specify multiple schemes + parameters 这将挑战JWT承载认证处理程序. AutomaticChallenge(在ASP.NET Core 1.x中)是设置,表示这是默认的质询处理程序.这意味着如果没有专门命名认证方案,它将被调用. 在2.x中,对此进行了更改,以便您现在指定默认质询方案或更高级别的默认方案. services.AddAuthentication(o => { o.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; //Default for everything // o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; //Default specifically for challenges }) 挑战基本上是一种说法“我不知道这个用户是谁,请验证他们的身份”.因此,如果触发的认证处理程序是Facebook身份验证处理程序,它将通过向Facebook身份验证页面发出重定向来对挑战做出反应.本地帐户身份验证处理程序可能会向本地登录页面发出重定向. 在JWT承载认证的情况下,处理程序除了响应401状态代码之外不能执行任何操作,并将其留给调用者以正确地进行身份验证. 您可以在Facebook授权使用的OAuthHandler(HandleChallengeAsync)中看到这一点(以及Microsoft和Google身份验证). 当您不知道用户是谁时,您通常会返回挑战;如果您知道他们是谁,则通常会返回,但不允许他们执行他们尝试的操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – MVC3 / Razor:cshtml.Execute()’:找不
- asp.net-mvc – 无法加载文件或程序集’WebMatrix.Data,版本
- asp.net-web-api – 设计REST ful ODATA API,结果集为空时如
- 在ASP.Net MVC中长时间运行SQL查询的最佳实践
- asp.net-mvc – 用于MVC的程序集中的资源的Bundle Script和
- ASP.NET Identity会话cookie的安全性如何?
- asp.net-mvc – MVC脚手架 – 参考程序集中缺少类
- asp.net – 关于MVC3中助手的清晰度?
- .net – DNU发布 – 来自MSBuild的no-source
- asp.net – jQuery的ajax正在导致FireFox的全页刷新
- asp.net-mvc – ALTER TABLE DROP COLUMN失败,因
- Razor Page Library:开发独立通用RPL(内嵌wwwr
- asp.net-mvc – ServiceStack应该是MVC应用程序中
- asp.net-mvc – 用于MVC不引人注目的远程验证的事
- asp.net-mvc – 我的模型应该在哪里生活? Web层
- asp.net – 流程模型minFreeThreads澄清
- 问题在ASP.NET 5(Core)中添加对类库项目的引用
- 详解ASP.NET Core 在 JSON 文件中配置依赖注入
- asp.net – URL重写规则在Visual Studio Develop
- ASP.NET C#ListBox服务器控件不会禁用