asp.net универсальный обработчик isAuthenticated
У меня есть два веб-сайта, domain1.com и domain2.com, на domain1.com у меня есть универсальный обработчик, который напишет ответ, который сообщит, аутентифицирован ли пользователь с использованием:
string json = "{\"status\":\"" + HttpContext.Current.User.Identity.IsAuthenticated + "\"}";
HttpContext.Response.Clear();
HttpContext.Response.ContentType = "application/jsonp"
HttpContext.Response.Write(json);
Теперь, если я просматриваю универсальный обработчик с помощью своего браузера, все работает нормально, если пользователь вошел в систему, он вернет "status":"true", иначе "status":"false"
проблема начинается, когда я отправляю запрос от domain2.com этому универсальному обработчику с помощью $.get(), результатом всегда будет "status":"false" независимо от того, вошел ли пользователь в систему или нет. вид междоменных нарушений? Я действительно не понимаю этого, пожалуйста, помогите мне, спасибо.
1 ответ
При использовании проверки подлинности с помощью форм ASP.NET для этого домена создается файл cookie ASPXAUTH.
Файлы cookie отправляются с каждым запросом, поэтому ASP.NET будет искать файл cookie ASPXAUTH (которого нет в domain2.com) и определяет, что пользователь не прошел проверку подлинности.
Возможно, вам придется искать междоменное решение SSO, которое соответствует вашим потребностям. Посмотрите здесь: http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic