У нас недавно была эта проблема.
Установка cookie в Application_EndRequest для защиты, как указано в комментарии выше, также не помогла.
Единственная вещь, которая позволила нам установить cookie только для ssl, - это изменить имя auth cookie в файле web.config. Это не должно нарушать любую другую существующую функциональность.
Примерно так должно работать:
<forms loginUrl="CMSPages/logon.aspx"
defaultUrl="Default.aspx"
name=".ASPXFORMSAUTHENTICATION"
timeout="60000"
slidingExpiration="true"
requireSSL="true" />
Мы до сих пор не уверены, почему это происходит, но это решает проблему.