我们正试图从TLS 1.0 / 1.1更改为1.2。运行的唯一协议是1.2,并且.net和sql已更改为支持1.2。它在尝试登录时立即开始给我们这个错误。
事件代码:4005事件消息:表单身份验证失败 请求。原因:提供的票证无效。活动时间: 6/1/2018 9:27:58 AM活动时间(UTC):6/1/2018 1:27:58 PM活动ID: ed7b05ef18c84be1b02ae683df1b6e79事件序列:2事件发生:1 活动详情代码:50201
这是在我的web.config
中 <authentication mode="Forms">
<forms loginUrl="~/Login/MainLoginPage.aspx" defaultUrl="/default.aspx" name="LoginAuthCookie" timeout="525600" />
</authentication>
<location path="Mobile/Customers/CustomerList.aspx">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
<location path="Mobile/Customers/JDE/NoCust.aspx">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
<location path="login/mainloginpage.aspx">
<system.web>
<!--<pages validateRequest="false" />-->
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
<location path="Applications">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
我们的测试页面仍然有效但我们的生产没有,它们具有相同的web.config页面。
我的问题是,是否有人知道为什么会发生这种情况以及如何解决这个问题?我已经阅读了本网站上的一些主题,但他们没有任何帮助。如果您需要更多信息,请告诉我,并提前感谢您的回复。
答案 0 :(得分:0)
您可以将ServicePointManager.SecurityProtocol = (SecurityProtocolType) 3072;
添加到Global.asax.cs。
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
ServicePointManager.SecurityProtocol = (SecurityProtocolType) 3072;
}
}
答案 1 :(得分:0)
我必须支持TLS1.2,因为我的支付处理器需要它,我相信现在都做了。我正在处理一个12岁的应用程序,所以我不想在整个应用程序中引入问题,所以我在相关页面插入了一行代码,一切都很顺利。那一行是:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
这会强制使用TLS1.2连接后面的httprequest
。适合我。
注意:强> 我将整个应用程序(不是问题)升级到.NET 4.5,早期版本不支持TLS1.2