首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调用callapi/客户端凭据时,浏览器在IdentityServer MVC演练中挂起

在IdentityServer MVC演练中,当调用callapi/客户端凭据时,浏览器可能会挂起。这是因为在这种情况下,浏览器需要与IdentityServer进行交互,以获取用户的身份验证凭据。

具体来说,当浏览器发起请求调用callapi/客户端凭据时,IdentityServer会验证该请求是否来自一个已经认证的用户。如果用户尚未认证,IdentityServer会将用户重定向到登录页面,要求用户提供凭据进行身份验证。

在用户成功完成身份验证后,IdentityServer会生成一个授权代码或访问令牌,并将其返回给浏览器。浏览器随后将该代码或令牌发送回callapi/客户端凭据的请求,以证明用户已经通过身份验证。

然而,由于浏览器的安全策略,它可能会在接收到授权代码或令牌后挂起请求。这是因为浏览器默认情况下不允许跨域请求,而IdentityServer通常位于不同的域或子域下。

为了解决这个问题,可以采取以下步骤:

  1. 在IdentityServer的配置中,确保已正确配置允许跨域请求。这可以通过设置适当的CORS(跨域资源共享)策略来实现。
  2. 在浏览器端,可以使用一些技术来绕过跨域限制。例如,可以使用JSONP(JSON with Padding)或CORS(跨域资源共享)来实现跨域请求。
  3. 另一种方法是使用代理服务器。通过将请求发送到代理服务器,然后由代理服务器与IdentityServer进行通信,可以避免浏览器的跨域限制。

总结起来,当调用callapi/客户端凭据时,在IdentityServer MVC演练中,浏览器可能会挂起。为了解决这个问题,需要正确配置IdentityServer的跨域策略,并在浏览器端采取适当的跨域请求技术或使用代理服务器来绕过跨域限制。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【One by One系列】IdentityServer4(四)授权码流程

接下来我们介绍新内容,OAuth2.0叫做授权码(authorization code),OpenID Connect则属于OpenId Connect Flow,称为授权码流程(Authorization...Code Flow),这种方式主要场景: 保密客户端,服务器端的web应用 “例如asp.net core mvc,这种由后端处理逻辑后,模板渲染的web框架 ” 另外,这种方式主要是需要先去IdentityServer...1.IdentityServer增加UI 上两篇文章,主要针对的是客户端凭证和密码凭证,我们继续IdentityServer项目中进行增量开发。 1.1 增加MVC UI模板代码 cd ....\src\IdentityServer dotnet new is4ui 1.2 MVC生效 依赖注入和管道中使mvc生效 Startup.ConfigureServices // uncomment...控制器增加退出操作代码: public IActionResult Logout() { return SignOut("Cookies", "oidc"); } 视图层_Layout.cshtml

1.9K20
  • .NET Core微服务之基于IdentityServer建立授权与验证服务

    通常,你构建(或重新使用)包含登录和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序可以使用这些标准协议与其对话。   ...资源拥有者密码凭据许可),因此我们还可以使用ClientCredentials(点击这里了解=>客户端凭据许可),如下所示:   Step6.再次查看控制台日志信息:这次没有关于User相关的任何信息显示了...最终导出后的结果如下图所示:   这里我将其放到了项目结构文件夹,并设置这个pfx文件为“如果较新则复制”,确保可以最后生成的目录里边。...后续还会创建API和MVC网站,来和IdentityServer进行集成,以演示如何对User授予访问API和MVC网站的访问权限。...Credentials(客户端凭据许可)》 solenovex,《学习Identity Server4的预备知识》 solenovex,《使用Identity Server 4建立Authorization

    1.7K60

    IdentityServer Topics(1)- 启动说明

    您可以传入X509Certificate2,SigningCredential或对证书存储区证书的引用。 AddDeveloperSigningCredential 启动创建临时密钥。...这些“in-memory”的集合可以宿主应用程序中进行硬编码,也可以从配置文件或数据库动态加载。 但是,设计时,只有托管应用程序启动才会创建这些集合。...测试存储 TestUser类IdentityServer模拟用户,凭据和声明。 TestUser的使用与使用“in-memory”存储类似,因为它适用于原型开发和/或测试。...配置中间件 您需要通过以下方式调用IdentityServer添加到管道: public void Configure(IApplicationBuilder app) { app.UseIdentityServer...请注意,添加顺序管道配置很重要。 例如,您需要在添加MVC中间件之前添加IdentitySever。

    65030

    ASP.NET Core的身份认证框架IdentityServer4(7)- 使用客户端认证控制API访问

    我准备使用的是.net core 2.0 所支持的IdentityServer4 2.0.0,官方文档及Demo只能参考,因为asp.net core 2.0及IdentityServer4 2.0版本中一些接口做了调整...第一次接触IdentityServer4是ABP的asp.net zero项目中,感觉IdentityServer4挺方便的,便有了系统性的学一下IdentityServer4的想法,这是我写IdentityServer4...添加API 项目Api添加一个Controller [Route("[controller]")] [Authorize] public class IdentityController : ControllerBase...进一步实践 当前演练目前主要关注的是成功的步骤: 客户端可以请求令牌 客户端可以使用令牌来访问 API 你现在可以尝试引发一些错误来学习系统的相关行为,比如: 尝试 IdentityServer 未运行时...(unavailable)连接它 尝试使用一个非法的客户端id或密码来请求令牌 尝试在请求令牌的过程请求一个非法的 scope 尝试 API 未运行时(unavailable)调用它 不向 API

    3.4K40

    Identity Server 4 - Hybrid Flow - MVC客户端身份验证

    ()方法, 它会创建一个用于对token签名的临时密钥材料(但是在生产环境应该使用可持久的密钥材料):图片然后需要添加资源和客户端, 按照官方文档的做法, 我添加一个Config类:图片这里我首先添加了一个..., 它就是我之前打开的那个页面.ASP.NET Core MVC 作为客户端首先考虑ASP.NET Core MVC 作为客户端应用的情况.ASP.NET Core MVC是机密客户端(Confidential...这个流程的授权码和tokens是通过跳转来传递到浏览器的URI上面的, 所以我需要一个URI来接收这些东西, 而RedirectUris里面的URI就是允许做这个工作的URI.下面继续配置MVC客户端....访问Mvc的首页, 会自动跳转到Identity Provider上:图片具体的请求可以通过Chrome的Developer Tools看到:图片在Identity Provider的控制台上,...这个地址, 它就是我之前Identity Provider里面Client的RedirectUri.与此同时, 可以Identity Provider的控制台看到, MVC客户端通过后端通道向Token

    2K20

    【One by One系列】IdentityServer4(二)使用Client Credentials保护API资源

    **Startup.Configure方法调用 app.UseIdentityServer(); 添加中间件,把Id4添加至http请求处理管道,这使得Id4可以为OpenID Connect和OAuth2...IdentityServer4,增加了Scope参数,表明了客户端的访问权限 1.安装Id4模板 dotnet new -i IdentityServer4.Templates AdminUI:...,就要让客户端IdentityServer注册。...客户端,模板客户端与scope一样为空,Config.cs增加客户端,代码如下: public static IEnumerable Clients =>...它是IdentityServer的标准端点 客户端和APIs会使用它下载必要的配置数据,容后再表 第一次启动IdentityServer将创建一个开发者签名密钥,它是一个名为tempkey.rsa

    2.3K30

    ASP.NET Core的身份认证框架IdentityServer4(9)-使用OpenID Connect添加用户认证

    而SaveTokens用于Cookie中保存IdentityServer的令牌(稍后将需要)。...HomeController,将会导致重定向到IdentityServer,这将导致错误,因为MVC客户端尚未注册。...可以使用客户端对象上的RequireConsent属性以每个客户端为基础关闭同意询问。 ? 最后浏览器重定向到客户端应用程序,该应用程序显示了用户的声明。 ?...开发过程,您有时可能会看到一个异常,说明令牌无法验证。 这是因为签名密钥信息是即时创建的,并且只保存在内存。 当客户端IdentityServer不同步,会发生此异常。...只需客户端重复操作,下次元数据已经追上,一切都应该正常工作。 添加注销 最后一步是给MVC客户端添加注销功能。

    3.4K30

    IdentityServer(11)- 使用Hybrid Flow并添加API访问控制

    在前一篇文章,我们使用了OpenID Connect implicit flow。 implicit流程,所有的令牌都通过浏览器传输,这对于身份令牌来说是完全不错的。...OpenID Connect包含一个名为“混合流”的流程,它可以让我们两全其美,身份令牌通过浏览器通道传输,因此客户端可以在做更多的工作之前验证它。...首先,我们希望允许客户端使用混合流,另外我们还希望客户端允许服务器到服务器API调用,这些调用不在用户的上下文中(这与我们的客户端证书quickstart非常相似)。...客户端 MVC客户端的修改也是最小的 - ASP.NET Core OpenID Connect处理程序已经内置支持混合流程,所以我们只需要改变一些配置值。...客户端,不会有太大的区别,除了同意界面现在要求你提供额外的API和offline access访问作用域。

    1.2K40

    IdentityServer Topics(7)- 注销

    IdentityServer支持服务器端的客户端MVC Client)的前端通信规范,服务器端的客户端MVC Client)的后端通信规范,以及基于浏览器的JavaScript客户端(例如SPA,React...前端通信 要通过前端通信规范从服务器端的客户端应用程序注销用户,IdentityServer的“注销”页面必须呈现<iframe>以通知客户端用户已注销。...后端通信 通过后端通信来注销用户,IdentityServer的SignOutIFrameUrl端点将自动触发服务器到服务器的调用,将签名注销请求传递给客户端。...这意味着即使没有前端客户端IdentityServer的“注销”页面仍然必须呈现一个到SignOutFrameUrl,希望收到通知的客户端必须设置BackChannelLogoutUri...配置值 基于浏览器的JavaScript客户端 鉴于会话管理规范是如何设计的,IdentityServer没有什么特别的,您需要通知这些客户端用户已经退出。

    2K20

    IdentityServer(12)- 使用 ASP.NET Core Identity

    这个新的项目将取代之前之前的快速入门从头开始构建的IdentityServer项目。 此解决方案的所有其他项目(对于客户端和API)将保持不变。...将之前快速入门的配置类(Config.cs)复制到此新项目中。 对于现在的配置需要改变的是禁用MVC客户端的许可。...我们还没有复制之前的IdentityServer项目的许可代码,所以现在对MVC客户端进行一次修改,并设置RequireConsent = false: new Client { ClientId...Asp.Net Identity添加到DI容器,一定要把注册IdentityServer放在Asp.Net Identity之后,因为注册IdentityServer会覆盖Asp.Net Identity...现在你有一个用户帐户,你应该可以登录,使用客户端,并调用API。 MVC客户端登录 启动MVC客户端应用程序,你应该能够点击“Secure”链接登录。 ?

    1.7K30

    asp.net core IdentityServer4 实现 implicit(隐式许可)实现第三方登录

    (client_credentials) 本章主要介绍简化模式(implicit) ,不通过第三方应用程序的服务器,直接在浏览器向认证服务器申请令牌,跳过了"授权码"这个步骤,因此得名。...所有步骤浏览器完成,令牌对访问者是可见的,且客户端不需要认证。...,并将令牌也包含在了里面; 客户端不携带上次获取到的包含令牌的片段,去请求资源服务器; 资源服务器会向浏览器返回一个脚本; 浏览器会根据上一步返回的脚本,去提取C步骤获取到的令牌; 浏览器将令牌推送给客户端...return new List { new Client{ ClientId="mvc...方法添加IdentityServer4服务中间件 app.UseIdentityServer(); 新建客户端 配置Startup 再走到ConfigureServices方法注入IdentityServer4

    1.3K30

    .NET Core微服务之基于IdentityServer建立授权与验证服务(续)

    为了方便快速启动,可以继续launchSettings.json删掉关于IISExpress的部分,由于是WebAPI,所以也不需要启动浏览器(将其设为false): { "profiles":...  仍然修改launchSettings.json,删掉IISExpress部分,但仍然选择启动浏览器: { "profiles": { "Manulife.DNC.MSAD.IdentityServer4Test.MvcClient...之Implicit(隐式许可)),它主要用于客户端应用程序(主要指基于javascript的应用),它允许客户端程序重定向到AuthorizationServer,然后带着token重定向回来。...2.4 AuthorizationServer添加这个MvcClient    InMemoryConfiguration类修改GetClients方法: public static IEnumerable...中发起请求调用API Service,而具体可以访问哪些API Service是InMemoryConfiguration配置的AllowScopes里面的那些)都显示出来,还会将Claims数据也显示出来

    1.8K50

    IdentityServer(13)- 添加JavaScript客户端

    我们将把的HTML和JavaScript文件放入到此文件件。 引用oidc客户端 MVC项目中,我们使用了一个库来处理OpenID Connect协议。...在这个项目中,我们需要一个类似的库,使用JavaScript编写可以浏览器运行的库。 oidc-client库是一个这样的库。 它可以通过NPM,Bower,以及从github直接下载。...它需要MVC客户端中所需的类似配置(尽管值不同)。...IdentityServer 现在客户端应用程序已经准备就绪,我们需要在IdentityServer为这个新的JavaScript客户端定义一个配置条目。...IdentityServer项目中找到客户端配置(Config.cs)。 为我们的新JavaScript应用程序添加一个新的客户端到列表

    2.7K40

    ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练

    一、背景介绍 API网关的流行源于最近几年移动应用与企业间接口对接的兴起,使得原来单一的PC客户端,变化到PC客户端、各种浏览器、手机移动端及智能终端等。...consul 的搭配,通过服务嵌入 ocelot 和 consul 的客户端,自动的完成服务注册到(Consul)和服务发现(ocelot读取Consul的服务);当用户访问某个 url 的时候,...ocelot 将会根据路由将用户请求转发到从 Consul 拉取到的真正的服务同时通过统一身份认证授权中心IdentityServer4进行鉴权。...如果您同样对本次分享《ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。...ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练 三、 Consul服务注册与发现介绍 四、下游微服务通过API接入Consul 五、Ocelot网关介绍

    1.5K10

    IdentityServer4入门

    RedirectUris = {"https://localhost:4001/signin-oidc"}, //mvc客户端的地址,signin-oidc:标准协议里的端点名称...}; } StartUp.cs 的ConfigureServices 方法配置如下: public void ConfigureServices(IServiceCollection services...Main编写代码: //请求客户端(需要先安装IdentityModel) //由于IdentityModel中大部分都是异步方法,为了方便,我们将Main方法也改成异步方法 //请求客户端(需要先安装...(); 运行IdentityServer项目与Mvc项目,此时,如果访问受保护的资源,则到自动跳转至IdentityServer项目登录页面,登录成功之后,会立即返回刚刚你所访问的受保护的资源页面,...-c ApplicationDbContext 此时~/Data/Migrations/IdentityServer下就会有你新创建的代码了 6.Startup.cs 类,初始化数据库, public

    7.8K30

    .NET 基金会项目介绍-IdentityServer

    IdentityServer 是能够为您的软件实现身份认证和权限控制相关特性的工具集,包括有: 身份认证即服务(快捷为软件提供身份认证能力) 单点登录、单点登出 为API提供权限控制 联合网关 IdentityServer...作为一个免费的开箱即用的开源项目,您可以轻松地中小型网站实现身份认证和授权、以及权限控制。 其项目背后的主要维护者是rock solid knowledge公司。...该公司围绕 IdentityServer 所提供的了很多付费扩展内容: 可视化管理界面 以SAML协议进行对接的方案 WS-Federation 支持 英文介绍 IdentityServer OpenID...其他项目地址 Akka.NET - 【Actor开发框架】 AngleSharp - 【浏览器引擎】 ASP.NET SignalR - 【Web实时通信框架】 ASP.NET MVC, Web API...Authentication Middleware Katana Project - 【Web开发框架】 Peachpie Compiler Platform - 【.Net上运行PHP】 Polly - 【服务调用工具库

    45720

    ASP.NET Core的身份认证框架IdentityServer4(8)- 使用密码认证方式控制API访问

    一般来说,当您要验证用户并请求访问令牌,通常使用交互式OpenID Connect流会更好。...不过,这个授权类型允许我们 IdentityServer 快速入门引入 用户 的概念,这是我们要展示它的原因。...让我们向配置类(如果你有严格按照顺序进行演练,那么配置类应该在 QuickstartIdentityServer 项目的 Config.cs 文件添加以下代码以创建一对用户: 首先添加以下语句 到...通常你会想要为资源所有者用例创建独立的客户端,添加以下代码到你配置客户端定义: // client want to access resources (aka scopes) public static...sub 信息可以调用 API 后通过检查内容变量来被查看,并且也将被控制台应用程序显示到屏幕上。 sub 信息的存在(或缺失)使得 API 能够区分代表客户端调用和代表用户的调用。 ?

    1.5K30
    领券