asp.net-mvc – thinktecture identityserver v3
发布时间:2020-12-16 04:06:30 所属栏目:asp.Net 来源:网络整理
导读:尝试使用Thinctecture identityserver v3作为多个mvc应用程序的简单sts. 我能够遍历所提供的示例应用程序并且运行正常,但它们都使用嵌入式身份服务器.我需要将identityserver作为一个单独的应用程序,以便我可以将它用作多个应用程序的sts.当我尝试运行身份服
尝试使用Thinctecture identityserver v3作为多个mvc应用程序的简单sts.
我能够遍历所提供的示例应用程序并且运行正常,但它们都使用嵌入式身份服务器.我需要将identityserver作为一个单独的应用程序,以便我可以将它用作多个应用程序的sts.当我尝试运行身份服务器并将示例mvc应用程序连接到它时似乎缺少某些东西. 示例mvc应用程序使用武士刀 app.USEOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions... 但我只是不明白如何正确配置外部应用服务. 这是我的依赖方配置为mvc. 在mvc应用程序中,每当我尝试导航到需要授权的视图时,我都会得到异常. 堆栈跟踪: [HttpRequestException: Response status code does not indicate success: 404 (Not Found).] System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() +87960 Microsoft.IdentityModel.Protocols.<GetDocumentAsync>d__0.MoveNext() +496 [IOException: Unable to get document from: https://localhost:44333/.well-known/openid-configuration] Microsoft.IdentityModel.Protocols.<GetDocumentAsync>d__0.MoveNext() +830 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +24 Microsoft.IdentityModel.Protocols.<GetAsync>d__0.MoveNext() +512 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +24 Microsoft.IdentityModel.Protocols.<GetConfigurationAsync>d__3.MoveNext() +1332 这是mvc应用程序中的完整身份验证配置. app.USEOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions { //Authority = "https://localhost:44319/identity",Authority = "https://localhost:44333",ClientId = "mvc",Scope = "openid profile roles",RedirectUri = "https://localhost:44319/",SignInAsAuthenticationType = "Cookies",UseTokenLifetime = false,Notifications = new OpenIdConnectAuthenticationNotifications { SecurityTokenValidated = async n => { var id = n.AuthenticationTicket.Identity; // we want to keep first name,last name,subject and roles var givenName = id.FindFirst(Constants.ClaimTypes.GivenName); var familyName = id.FindFirst(Constants.ClaimTypes.FamilyName); var sub = id.FindFirst(Constants.ClaimTypes.Subject); var roles = id.FindAll(Constants.ClaimTypes.Role); // create new identity and set name and role claim type var nid = new ClaimsIdentity( id.AuthenticationType,Constants.ClaimTypes.GivenName,Constants.ClaimTypes.Role); nid.AddClaim(givenName); nid.AddClaim(familyName); nid.AddClaim(sub); nid.AddClaims(roles); // keep the id_token for logout nid.AddClaim(new Claim("id_token",n.ProtocolMessage.IdToken)); // add some other app specific claim nid.AddClaim(new Claim("app_specific","some data")); n.AuthenticationTicket = new AuthenticationTicket( nid,n.AuthenticationTicket.Properties); },RedirectToIdentityProvider = async n => { if (n.ProtocolMessage.RequestType == OpenIdConnectRequestType.LogoutRequest) { var idTokenHint = n.OwinContext.Authentication.User.FindFirst("id_token"); if (idTokenHint != null) { n.ProtocolMessage.IdTokenHint = idTokenHint.Value; } } } } }); 解决方法
您的端点最后缺少/ identity
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何从Asp.Net传递JavaScript的价值
- 浅谈ASP.Net Core WebApi几种版本控制对比
- asp.net – 如何将MVC空项目转换为Web API?
- .net – 从webforms将参数传递给Crystal报表
- asp.net-mvc – mvc4future无法在ASP.NET MVC 5中使用
- asp.net-mvc – mvc 3 session和authorizeAttribute
- 从ASP.NET中的标准程序集覆盖资源
- asp.net/C#中的请求来源
- asp.net-mvc – Razor视图中没有渲染的条件ActionLink(asp.
- asp.net-mvc – 如果我使用ASP .NET MVC 3,我可以安全地从V
推荐文章
站长推荐
- asp.net – 无法为’localhost’生成绑定重定向.
- 从asp.net页面查看器Web部件显示当前经过身份验证
- asp.net-mvc – 使用ASP.NET MVC测试驱动的开发
- asp.net – 如何修复“System.Security.Permissi
- asp.net-mvc – 具有引导Navbar的MVC – 将所选项
- asp.net – .net中的Ajax响应数据
- asp.net-mvc-5 – Web API 2 OWIN承载令牌的目的
- asp.net – Dotnetopenauth oAuth服务提供商的解
- asp.net-mvc – ASP.NET MVC Preview 5 on Mono
- asp.net-mvc – 适用于典型n层架构的Web API在哪
热点阅读