У меня есть веб-приложение, над которым я работаю, которое использует аутентификацию утверждений, но у меня есть проблема с удалением вошедшего в систему пользователя всякий раз, когда кто-либо обновляет страницу. Звучит очень похоже на эту проблему здесь: https://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/httpcontext-current-user-identity-isauthenticated-is-false-after-response-redirect, но, к сожалению, я не могу просто переключиться на аутентификацию на основе форм, потому что мне также нужно использовать openid для подключения к facebook и т. д.
У меня есть следующий код в моем global.asax.cs
protected void Application_Start(object sender, EventArgs e)
{
Telerik.Sitefinity.Abstractions.Bootstrapper.Initialized += Bootstrapper_Initialized;
// RegisterWebApiFilters(GlobalConfiguration.Configuration.Filters);
System.Web.Helpers.AntiForgeryConfig.UniqueClaimTypeIdentifier = System.Security.Claims.ClaimTypes.NameIdentifier;
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
var identity = System.Web.HttpContext.Current.User.Identity as System.Security.Claims.ClaimsIdentity;
var claimsUser = ClaimsManager.GetCurrentIdentity();
//identity.AddClaim(new System.Security.Claims.Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", identity.Name));
identity.AddClaim(new System.Security.Claims.Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", identity.Name));
//System.Web.Helpers.AntiForgeryConfig.UniqueClaimTypeIdentifier = System.Security.Claims.ClaimTypes.NameIdentifier;
}
Переменная идентификатора в приведенном выше коде показывает, что пользователь, вошедший в систему, хорошо перед перезагрузкой страницы, включая то, что он хранится в файлах cookie, но после перезагрузки возвращается как анонимный пользователь.
Я думаю, что у меня тоже правильно настроен web.config. У меня есть IdentityModel, установленный на следующее:
<system.identityModel.services>
<federationConfiguration>
<wsFederation passiveRedirectEnabled="true" issuer="http://localhost" realm="http://localhost" requireHttps="false" />
<cookieHandler requireSsl="false" />
</federationConfiguration>
Любые идеи были бы хорошы.