Переопределите аутентификацию форм ASP.NET для единственной страницы

У меня та же проблема, в моем случае был график старшей диаграммы, который отображается после нажатия кнопки. Я поставил $(window).resize(); после события show, и это решило проблему правильно. Я надеюсь, что вы служите.

5
задан Benjamin Pollack 2 June 2009 в 21:02
поделиться

2 ответа

Следующее решение работает, хотя я совершенно не уверен, что оно оптимально:

public class HttpAuthenticationRequiredResult : ActionResult
{
    public override void ExecuteResult(ControllerContext context)
    {
        var response = context.HttpContext.Response;
        response.StatusCode = 401;
        response.AddHeader("WWW-Authenticate", "Basic realm=\"whatever\"");
        response.Flush();
        response.Close();
    }
}

Затем вы можете вернуть указанный выше результат вместо HttpUnauthorizedResult для генерации необходимого кода 401. Однако мне это кажется довольно сложным.

6
ответ дан 13 December 2019 в 22:15
поделиться

У вас могут быть отдельные разделы для разных путей. Вот пример:

<configuration>
  <location path="Foo/Bar.aspx">
    <system.web>
      <authorization>
        <allow roles="GoodGuys" />
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

В этом случае страница «Foo / Bar.aspx» разрешена пользователям с ролью GoodGuys, но запрещена для всех остальных.

В вашем случае вы можете разрешить все без аутентификации:

<configuration>
  <location path="Foo/Bar.aspx">
    <system.web>
      <authentication mode="None" />
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>
4
ответ дан 13 December 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: