как перейти на публичный - PullRequest
1 голос
/ 07 мая 2011
Public Sub mainlogin_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles mainlogin.Authenticate
    'Are the credentials valid?
    If Membership.ValidateUser(mainlogin.UserName, mainlogin.Password) Then
        'Has the password expired?
        Dim usrInfo As MembershipUser = Membership.GetUser(mainlogin.UserName)

        Dim daysSincePwdChange As Integer = Convert.ToInt32(DateTime.Now.Subtract(usrInfo.LastPasswordChangedDate).TotalDays)
        If daysSincePwdChange > SecurityUtils.DefaultPasswordExpiryInDays Then
            'Password expired, send user to change password
            Response.Redirect("~/ChangePassword.aspx?UserName=" & Server.UrlEncode(mainlogin.UserName))
        Else
            e.Authenticated = True 'Credentials valid & password is current
        End If
    Else
        e.Authenticated = False    'Invalid!
    End If
end sub

но я получил эту ошибку

Ошибка 6 «System.Web.SecurityUtils» не доступна в этом контексте, потому что это «Друг».

1 Ответ

0 голосов
/ 07 мая 2011

Вы не можете - как говорится, System.Web.SecurityUtils недоступен. Вы не можете сделать это публичным - это не предназначенный , чтобы быть публичным. Измените свой подход, чтобы он вам не понадобился.

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

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

...