asp.net-mvc – 在ASP.NET MVC 5应用程序中启用SSL会导致OpenIdConnectProtoc
|
我有一个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-3 – asp.net mvc3返回原始html来查看
- asp.net-mvc – 如何为mvc应用程序中的所有控制器启用ssl
- asp.net-mvc – 如何在View中获取当前的url值
- ASP.NET dev服务器和IIS Express有什么区别?
- 使用模块化设计组织良好的ASP.NET应用程序的最佳方法
- asp.net – 将我的网站与BlogEngine.Net集成
- asp.net – Ajax Tookit TabPanel Invisible Tag Bug
- asp.net – 如何阻止.net中的libwww-perl访问?
- asp.net – 设置Response.Status生成“HTTP状态字符串无效”
- asp.net – 测试Oracle存储过程的最简单的方法
- asp.net-mvc – VS2012启用NuGet包恢复消失,缺少
- asp.net-mvc – 在ASP.NET MVC中创建ETag过滤器
- asp.net-mvc-3 – 是否可以在Javascript文件中使
- asp.net-mvc – MVC 4 Ajax.beginform提交 – 导
- asp.net-mvc – ASP.NET MVC中的WebApi [FromUri
- 使用IIS/ASP.NET反向AJAX
- asp.net – 无法使用URL重写出站规则来更改IIS响
- asp.net – 如何将最新的TFS变更集编号插入到asp
- asp.net – 如何打破VB.NET中的“if”块
- asp.net – “共享主机中的”LOG_BACKUP“的数据
