HTTPS と HTTP に問題があります。私のフィルター属性がキャッシュされているようです。ログインすると、httpページをhttpsに自動的に送信しないはずです。その後、ログアウトすると https のままで問題ありませんが、http 以外のページに手動で移動しようとすると、ログインしているにもかかわらず、再び https ページにリダイレクトされます。ロギング情報がそれを示しているため、RequireSecure は常に true です。は。FilterAttributes はキャッシュされますか?もしそうなら、どうすればこれを修正できますか?
public class RequireHttpsAttribute : System.Web.Mvc.RequireHttpsAttribute
{
protected static readonly NLogLogger Logger = new NLogLogger();
public bool Ignore = false;
public bool RequireSecure = false;
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.RequestContext.HttpContext.User.Identity.IsAuthenticated)
{
Logger.Info("Require HTTPS User Authenticated");
RequireSecure = true;
}
if (filterContext.RequestContext.HttpContext.Request.IsLocal)
RequireSecure = false;
if (RequireSecure)
{
Logger.Info("Require HTTPS");
base.OnAuthorization(filterContext);
}
}
}
}