asp.net-mvc – 在ASP.NET MVC 5应用程序中启用SSL会导致OpenIdC
我有一个ASP.NET MVC 5应用程序,可以对Azure Active Directory进行身份验证.我想在整个应用中启用SSL.因此利用全局过滤器如下:
public class FilterConfig { /// <summary> /// Registers the global filters. /// </summary> /// <param name="filters">The filters.</param> public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new RequireHttpsAttribute()); } } 在此之后,我还将项目属性中的“启用SSL”设置为true.这给了我以下SSL网址 – > https://localhost:34567.我将项目更新为在“项目URL”中“服务器”下的“Web选项卡”下的IIS Express路径中.但是在运行该站点时,我遇到了以下错误:
我有认证.在网站上启用.我使用Azure Active目录. 安全代码如下: app.USEOpenIdConnectAuthentication( new OpenIdConnectAuthenticationOptions { ClientId = clientId,Authority = authority,PostLogoutRedirectUri = postLogoutRedirectUri }); app.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Audience = audience,Tenant = tenant,}); 认证.正在从web.config中读取值,如下所示: <add key="ida:ClientId" value="<some_guid>" /> <add key="ida:Audience" value="https://localhost:34567/" /> <add key="ida:AADInstance" value="https://login.windows.net/{0}" /> <add key="ida:Tenant" value="microsoft.onmicrosoft.com" /> <add key="ida:PostLogoutRedirectUri" value="https://localhost:34567/" /> 我尝试按照错误消息中的指示将RequireNonce设置为false,如下所示: ProtocolValidator = new OpenIdConnectProtocolValidator { RequireNonce = false } 但这只会导致无效的请求错误. 有人可以帮我理解这里的问题是什么吗?在启用SSL之前,一切都很顺利. 解决方法
如果错误消息以OICE_20004开头或包含IDX10311,则可以忽略异常.注意:自行承担风险.
Notifications = new OpenIdConnectAuthenticationNotifications() { RedirectToIdentityProvider = (context) => { // Ensure the URI is picked up dynamically from the request; string appBaseUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + context.Request.Uri.PathAndQuery; context.ProtocolMessage.RedirectUri = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + context.Request.Uri.PathAndQuery; context.ProtocolMessage.PostLogoutRedirectUri = appBaseUrl; return Task.FromResult(0); },AuthenticationFailed = (context) => { if (context.Exception.Message.StartsWith("OICE_20004") || context.Exception.Message.Contains("IDX10311")) { context.SkipToNextMiddleware(); return Task.FromResult(0); } return Task.FromResult(0); },} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用数据注释验证ASP.NET MVC 2中的SelectL
- asp.net – 使用ItemDataBound我只获得每隔一行.为什么?
- asp.net – Visual Studio在记事本中打开网页
- asp.net-mvc – asp.net mvc 3预选Html.DropDownListFor不能
- asp.net – Sitecore“HtmlCacheClearer清除所有网站的HTML
- 有没有办法检查WebResponse而不影响.NET中的底层响应流?
- asp.net – “此操作需要IIS集成管道模式
- asp.net – 存储过程与脚手架
- AngularJS_自定义控件_笔记1
- asp.net-mvc – ASP.NET MVC中的HTML清理程序,用于过滤危险
- .net – App_LocalResources如何使用MVC?
- asp.net-mvc – ASP.NET身份与简单的会员优点和缺
- Application_Start ASP.NET
- 将NUnit添加到ASP.NET MVC测试框架的选项
- asp.net – 如何在web.config中定义using语句?
- 在ASP.NET中,获取基本UR1请求的最快方法是什么?
- asp.net – System.Web.HttpException:请求超时
- asp.net-mvc – 在ASP.NET MVC中上传多个图像文本
- asp.net – WebForm_DoPostBackWithOptions没有使
- asp.net – Alpha Five Version 10如何开发Web应