Проверка подлинности на основе форм Cook ie не работает, когда веб-сайт находится в iFrame - PullRequest
0 голосов
/ 14 апреля 2020

Я разработал приложение Windows Forms в C# и Оно отлично работает . Недавно мой клиент выдвинул требование о том, что он хочет загрузить этот сайт внутри фрейма другого сайта . Итак, я создал простое приложение HTML с iframe для тестирования этого сценария. Во время тестирования я обнаружил, что некоторые свойства не были заданы в процессе формирования заявки на проверку подлинности с помощью форм. Кто-нибудь знает, в чем здесь проблема?

Это способ, которым я установил cook ie,

var cookie = FormsAuthentication.GetAuthCookie(userId, chkRememberMe.Checked);
var ticket = FormsAuthentication.Decrypt(cookie.Value);

var newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration,
                    ticket.IsPersistent, "insured", ticket.CookiePath);
var encTicket = FormsAuthentication.Encrypt(newTicket);

cookie.Value = encTicket;
Response.Cookies.Add(cookie);

Вот свойства объекта Page.User.Identity,

AuthenticationType = ""
IsAuthenticated = false
Name = ""
Ticket object is not available

Web.config

<system.web>
<sessionState cookieSameSite="None" timeout="20"/>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="Login.aspx">
  </forms>
</authentication>
.
.
</system.web>
...