Как я использую Управление входом в систему ASP.NET, не используя MembershipProvider?

Рассмотрите простую функцию, которая добавляет первые целые числа N. (например, sum(5) = 1 + 2 + 3 + 4 + 5 = 15).

Вот простая реализация JavaScript, которая использует рекурсию:

function recsum(x) {
    if (x===1) {
        return x;
    } else {
        return x + recsum(x-1);
    }
}

, Если бы Вы звонили recsum(5), это - то, что оценил бы интерпретатор JavaScript:

recsum(5)
5 + recsum(4)
5 + (4 + recsum(3))
5 + (4 + (3 + recsum(2)))
5 + (4 + (3 + (2 + recsum(1))))
5 + (4 + (3 + (2 + 1)))
15

Примечание, как каждый рекурсивный вызов должен завершиться перед интерпретатором JavaScript, начинает на самом деле делать работу вычисления суммы.

Вот рекурсивная хвостом версия той же функции:

function tailrecsum(x, running_total=0) {
    if (x===0) {
        return running_total;
    } else {
        return tailrecsum(x-1, running_total+x);
    }
}

Вот последовательность событий, которые произошли бы, если бы Вы звонили tailrecsum(5), (который эффективно был бы tailrecsum(5, 0) из-за второго аргумента по умолчанию).

tailrecsum(5, 0)
tailrecsum(4, 5)
tailrecsum(3, 9)
tailrecsum(2, 12)
tailrecsum(1, 14)
tailrecsum(0, 15)
15

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

Примечание: исходный ответ использовал примеры из Python. Они были изменены на JavaScript, так как интерпретаторы Python не поддерживают оптимизация последнего вызова . Однако, в то время как оптимизация последнего вызова часть спецификации 2015 года ECMAScript, большинство интерпретаторов JavaScript не поддерживает его .

10
задан Community 23 May 2017 в 12:10
поделиться

4 ответа

Вы можете просто перетащить элемент управления asp: Login на свою страницу, а затем в коде за ним перехватить событие Authenticate элемента управления Login.

В событии Authenticate проверьте имя пользователя / пароль, которые пользователь вошел. Имя пользователя и пароль являются свойствами элемента управления входом. (LoginCtrl.UserName, LoginCtrl.Password)

Если имя пользователя и пароль верны, просто установите для свойства Authenticated аргументы события значение True.

Провайдер членства не требуется.

например. На странице aspx ..

<asp:Login ID="LoginCtrl" runat="server" DestinationPageUrl="YouAreIn.aspx"></asp:Login>

В скрытом коде

Private Sub Log_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles LoginCtrl.Authenticate
    If LoginCtrl.UserName = "Hello" AndAlso LoginCtrl.Password = "Hello" Then
        e.Authenticated = True
    End If

c #

void MyLogin_Authenticate(object sender, AuthenticateEventArgs e)
{
    if(UserName == "Hello" && Password == "Hello")
        e.Authenticated = true;
}
23
ответ дан 3 December 2019 в 15:35
поделиться

Если у вас нет поставщика членства и на самом деле нет системы безопасности, о которой можно было бы говорить, просто поместите два поля в форму (имя пользователя, пароль) и протестируйте ее в при нажатии кнопки.

Элемент управления входом явно избыточен для того, что вы пытаетесь сделать.

3
ответ дан 3 December 2019 в 15:35
поделиться

Вам нужно будет создать собственный провайдер аутентификации и подключить его через web.config. http://www.devx.com/asp/Article/29256

0
ответ дан 3 December 2019 в 15:35
поделиться
2
ответ дан 3 December 2019 в 15:35
поделиться
Другие вопросы по тегам:

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