ASP.NET формирует аутентификацию - автоматический вход с тестовой учетной записью при отладке?

У меня есть веб-приложение, в котором используются поставщики членства и роли asp.net, позволяющие учетным записям, являющимся членами определенных ролей, иметь доступ к различным страницам в зависимости от назначения ролей.

Во время отладки я хотел бы, чтобы приложение автоматически входило в систему с тестовой учетной записью, поэтому я могу проверять функциональность назначений ролей, и мне не нужно каждый раз вводить учетные данные на странице входа в систему. Есть простой способ сделать это?

 Rango24 авг. 2012 г., 16:37
Вы должны принятьthe answer.

Ответы на вопрос(7)

Не могли бы вы просто вставить код в событие загрузки, чтобы установить строки имени пользователя и пароля и запустить событие onclick кнопки входа в систему?

Джефф прав, вы можете сделать это с помощью метода global.asax:

protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
   if(System.Diagnostics.Debugger.IsAttached && User == null)
   {
       FormsAuthentication.SetAuthCookie("dmike", false);
   }
}

ура

 17 июл. 2010 г., 14:11
Является ли ваша страница входа страницей по умолчанию? Потому что это то, что я думаю, это проблема ... попробуйте установить другую страницу по умолчанию и установить аутентификацию для перенаправления на страницу входа, только если пользователь не аутентифицирован ... ура
 24 авг. 2012 г., 16:37
+1 Вы также можете использоватьFormsAuthentication.RedirectFromLoginPage("dmike", False) установить cookie и перенаправить со страницы входа.
 CharlieG16 июл. 2010 г., 19:35
Почти готово; Я проходил проверку подлинности, но страница Login.aspx все равно срабатывает и запрашивает учетные данные.
 CharlieG12 апр. 2011 г., 18:06
Страницей по умолчанию является страница, над которой я работаю (не login.aspx).
 01 мая 2013 г., 21:37
Есть ли способ перенаправить его на первоначально запрошенную страницу, а не на страницу по умолчанию?

В методе Application_AuthenticateRequest (также называемом событием Applications AuthenticateRequest) в файле global.asax добавьте код, который проверяет, запускаете ли вы сайт в отладчике (что-то вроде system.Diagnostics.Debugger.IsAttached) и, если да, он у вас есть. создайте заявку на вход, создайте cookie и прикрепите его к сеансу. Библиотека FormsAuthentication предоставляет то, что вам нужно, если у провайдера членства его нет.

В событии page_load вы можете использовать FormsAuthentication.SetAuthCookie:

FormsAuthentication.SetAuthCookie("username", false);
 CharlieG07 июл. 2009 г., 19:52
Я попробовал этот метод, но страница входа по-прежнему срабатывает.

FormsAuthentication.RedirectFromLoginPage использует defaultUrl, чтобы решить, куда перенаправить после входа в систему. Поэтому убедитесь, что у вас есть правильный URL-адрес, отличный от вашего LoginPage.aspx.

FormsAuthentication.RedirectFromLoginPage("userName", True);

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login.aspx"
                 ...
                 defaultUrl="~/AnyFolder/PageAfterLogin.aspx"
                 ... />
</authentication>

Надеюсь, это немного поможет.

В качестве альтернативы существуют также такие инструменты, как Selenium IDE, которая является плагином для Firefox. Его основная цель - предоставить какое-то тестирование для пользовательского интерфейса. Для этого вы можете записывать действия, которые выполняются в пользовательском интерфейсе. Что вы можете сделать, это записать учетные данные, которые вы вводите для тестового пользователя, и сохранить их. В следующий раз, когда вы вернетесь, вы выполните скрипт, который автоматически заполняет необходимую информацию.

Существуют и другие инструменты, которые предназначены для автоматического заполнения формы на веб-странице. Селен больше рассматривается как среда тестирования, но я также использовал его для таких целей. Конечно, это всего лишь обходной путь.

Решение Вопроса

Этот код делает работу. В событии Page_Load Login.aspx:

    Membership.ValidateUser("<userName>", "<password>")
    FormsAuthentication.RedirectFromLoginPage("<userName>", True)

Документация MSDN

Замечания:Membership используетSystem.Web.Security ссылка.

Ваш ответ на вопрос