如何改变公众

时间:2011-05-07 07:28:28

标签: vb.net properties friend public

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'在此上下文中无法访问,因为它是'Friend'。

1 个答案:

答案 0 :(得分:0)

你不能 - 正如它所说,System.Web.SecurityUtils无法访问。你不能把它公开 - 它不是设计的是公开的。改变你的方法,这样你就不需要了。

当然,可能你真的想要引用不同的类型......你是否有机会阅读this page?我的猜测是,SecurityUtils是一个不同的自定义类,而不是System.Web.SecurityUtils

它正在做的就是获得网站的默认过期 - 而这可能是你想以自己的方式实现的。它可能只是一个常量,或者可能来自设置文件。这并不像那里会有很多逻辑。