FormsAuthentication未声明

时间:2011-05-06 05:03:12

标签: vb.net forms-authentication

我正在使用VB.NET 2010。

我的一行代码是:

Encoding.UTF8.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox_AccessCode.Text, "MD5"))

但FormsAuthentication带有下划线,并且未声明错误读取“FormsAuthentication”。我确保已导入System.Web.Security命名空间,但仍然收到消息。

有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

FormsAuthentication构成了asp.net中使用的System.Web的一部分,并且无法通过Win Forms访问。不完全确定你是否能够导入dll并以这种方式使用它,我怀疑它......

如果您只想散列md5字符串,可以在下面执行:

new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.UTF8.GetBytes(TextBox_AccessCode.Text);
x.ComputeHash(bs);

答案 1 :(得分:0)

感谢TBohnen.jnr,我发现Forms Authentication不是通过VB.NET的Windows Forms的一部分。我最终使用以下代码生成MD5哈希:

    Public Shared Function MD5(ByVal str As String) As String
    Dim provider As MD5CryptoServiceProvider
    Dim bytValue() As Byte
    Dim bytHash() As Byte
    Dim strOutput As String = ""
    Dim i As Integer
    provider = New MD5CryptoServiceProvider()
    bytValue = System.Text.Encoding.UTF8.GetBytes(str)
    bytHash = provider.ComputeHash(bytValue)
    provider.Clear()
    For i = 0 To bytHash.Length - 1
        strOutput &= bytHash(i).ToString("x").PadLeft(2, "0")
    Next
    Return strOutput
End Function