IIS 10 отправляет обратно текст только в Response.Write по-другому - PullRequest
0 голосов
/ 19 марта 2019

Для поддержки старых клиентов у нас был код в приложении ASP.Net на Windows Server 2012 R2 IIS 8.5.9600.16384, который отправлял обратно только «True» или «False» (без кавычек):

   public partial class Authenticate : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Form["Login"] == "true")
            {
                var result = Membership.ValidateUser(Request.Form["Username"], Request.Form["Password"]);
                if (result)
                {
                    FormsAuthentication.SetAuthCookie(Request.Form["Username"], false);
                }
                Response.Write(result);
                Response.End();
            }
        }
    }

Мы установили новый Windows Server 2016 с IIS 10.0.14393.0, и теперь он отправляет обратно значение, заключенное в теги html:

"<html><body><p>True</p></body></html>"

Почему ??Не делает это на моем блоке разработки или на старом сервере Win 2012 R2.Я не могу найти никакой информации об этом - мы не можем изменить всех клиентов, как мы можем гарантировать, что эта веб-страница возвращает только "True" или "False" в Win 2016 IIS 10.0.14393.0?

1 Ответ

0 голосов
/ 19 марта 2019

все заработало, добавили ContentType как текст / обычный текст в таких заголовках:

        Response.Clear();
        Response.ClearHeaders();
        Response.AddHeader("Content-Type", "text/plain");
        Response.ContentType = "text/plain";
        Response.Write(result);
        Response.End();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...