2011-05-06 89 views
0

我使用VB.NET 2010FormsAuthentication未声明

我的一个行代码是:

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

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

任何想法?

谢谢。

+0

什么项目类型? Asp.Net? – 2011-05-06 05:25:59

+0

只是一个Windows窗体应用程序。 – Brady 2011-05-06 06:25:52

回答

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); 
+0

感谢您的信息,但这不适用于VB.NET。 – Brady 2011-05-06 19:30:47

0

谢谢到TBohnen.jnr,我发现表单身份验证不是通过VB.NET的Windows窗体的一部分。我结束了使用下面的代码生成一个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