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

Согласно комментарий обновления Prerak K (так как удаленный):

я предполагаю, что не представил вопрос правильно.

ситуация - это: Я хочу загрузить данные в глобальную переменную на основе значения управления. Я не хочу изменять значение управления от дочернего потока. Я не собираюсь делать это когда-либо от дочернего потока.

Поэтому только доступ к значению так, чтобы соответствующие данные могли быть выбраны от базы данных.

решение, которое Вы хотите тогда, должно быть похожим:

UserContrl1_LOadDataMethod()
{
    string name = "";
    if(textbox1.InvokeRequired)
    {
        textbox1.Invoke(new MethodInvoker(delegate { name = textbox1.text; }));
    }
    if(name == "MyName")
    {
        // do whatever
    }
}

Делают Вашу серьезную обработку в отдельном потоке прежде , Вы пытаетесь переключиться назад на поток управления. Например:

UserContrl1_LOadDataMethod()
{
    if(textbox1.text=="MyName") //<<======Now it wont give exception**
    {
        //Load data correspondin to "MyName"
        //Populate a globale variable List which will be
        //bound to grid at some later stage
        if(InvokeRequired)
        {
            // after we've done all the processing, 
            this.Invoke(new MethodInvoker(delegate {
                // load the control with the appropriate data
            }));
            return;
        }
    }
}

8
задан CharlieG 7 July 2009 в 18:01
поделиться

7 ответов

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

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

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

Примечание: Членство использует ссылку System.Web.Security .

3
ответ дан 5 December 2019 в 11:26
поделиться

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

2
ответ дан 5 December 2019 в 11:26
поделиться

Could you just put code in the load event to set the username and password strings and fire the onclick event of the login button?

0
ответ дан 5 December 2019 в 11:26
поделиться

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

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

0
ответ дан 5 December 2019 в 11:26
поделиться

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

FormsAuthentication.SetAuthCookie("username", false);
0
ответ дан 5 December 2019 в 11:26
поделиться

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

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

ура

10
ответ дан 5 December 2019 в 11:26
поделиться

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

FormsAuthentication.RedirectFromLoginPage("userName", True);

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

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

0
ответ дан 5 December 2019 в 11:26
поделиться
Другие вопросы по тегам:

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