После стольких исследований сработало предложение одного из моих друзей.Я использовал следующий код в Global.asax.cs
protected void Application_Start(object sender, EventArgs e)
{
//Certificate
FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
}
void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
{
var sessionTransforms = new List<CookieTransform>(new CookieTransform[]{
new DeflateCookieTransform(),
new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate),
new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate)
});
var readOnlyTransforms = sessionTransforms.AsReadOnly();
var sessionHandler = new SessionSecurityTokenHandler(readOnlyTransforms);
e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
}
Проблема заключалась в следующей строке,
new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate),
В соответствии с MSDN мы можем использовать RsaSignatureCookieTransform вместо этогогде SHA-256 не поддерживается.Поэтому мы использовали следующую строку вместо RsaSignatureCookieTransform.
new RsaSha1SignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate),
Это решило нашу проблему.