我有这样几个文件:web.config,login.aspx,default.aspx,OracleMembershipProvider.vbdefault.aspx页面放的是一个CreateUserWizard的控件,login.aspx页面放的是一个login控件。怎样配置web.config,并且在OracleMembershipProvider.vb中应该如何实现,下面OracleMembershipProvider.vb代码是连接access的,但我想连接ORACLE,有没有谁知道怎么实现的?最好提供代码,有SAMPLE的发到我邮箱[email protected],或者有好的网址也可以。不过要是连接oracle的。web.config配置如下:
<?xml version="1.0" encoding="utf-8"?><configuration>
<appSettings/>
<system.web>
<compilation debug="true" strict="false" explicit="true" /> <authentication mode="Forms">
<forms loginUrl="Login.aspx"
protection="All"
timeout="40"
name="AppNameCookie"
path="/FormsAuth"
requireSSL="false"
slidingExpiration="true"
defaultUrl="default.aspx"
cookieless="UseCookies"
enableCrossAppRedirects="false"/>
</authentication> <authorization>
<allow users="*" />
</authorization> <sessionState
mode="InProc"
cookieless="false"
timeout="40"
/> <membership
defaultProvider="OracleMembershipProvider" >
<providers>
<clear/>
<add name="OracleMembershipProvider"
type="Oracle.OracleMembershipProvider"
requiresQuestionAndAnswer="true"
connectionString="Provider=Microsoft.Jet.
OLEDB.4.0;Data Source=D:\Members.mdb;Persist Security
Info=False" />
</providers>
</membership> </system.web>
</configuration>OracleMembershipProvider.vb代码如下:
Imports System.DataPublic Class OracleMembershipProvider
Inherits MembershipProvider Private connStr As String
Private comm As New OleDb.OleDbCommand
Private _requiresQuestionAndAnswer As Boolean
Private _minRequiredPasswordLength As Integer
Public Overrides Sub Initialize(ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection) '===retrives the attribute values set in
'web.config and assign to local variables===
If config("requiresQuestionAndAnswer") = "true" Then _
_requiresQuestionAndAnswer = True
connStr = config("connectionString")
MyBase.Initialize(name, config)
End Sub Public Overrides Function CreateUser(ByVal username As String, ByVal password As String, ByVal email As String, ByVal passwordQuestion As String, ByVal passwordAnswer As String, ByVal isApproved As Boolean, ByVal providerUserKey As Object, ByRef status As System.Web.Security.MembershipCreateStatus) As System.Web.Security.MembershipUser
Dim conn As New OleDb.OleDbConnection(connStr)
Try
conn.Open()
Dim sql As String = "INSERT INTO Member VALUES (" & _
"@username, @password, @email, " & _
" @passwordQuestion, @passwordAnswer )"
Dim comm As New OleDb.OleDbCommand(sql, conn)
comm.Parameters.AddWithValue("@username", username)
comm.Parameters.AddWithValue("@password", password)
comm.Parameters.AddWithValue("@email", email)
comm.Parameters.AddWithValue("@passwordQuestion", passwordQuestion)
comm.Parameters.AddWithValue("@passwordAnswer", passwordAnswer)
Dim result As Integer = comm.ExecuteNonQuery()
conn.Close() status = MembershipCreateStatus.Success
Dim user As New MembershipUser("AccessMembershipProvider", username, Nothing, email, passwordQuestion, Nothing, True, False, Now, Nothing, Nothing, Nothing, Nothing)
Return user
Catch ex As Exception
status = MembershipCreateStatus.UserRejected
Return Nothing
End Try
End Function Public Overrides Function ValidateUser( _
ByVal username As String, _
ByVal password As String) As Boolean Dim conn As New OleDb.OleDbConnection(connStr)
Try
conn.Open()
Dim sql As String = _
"Select * From Membership WHERE " & _
"username=@username AND password=@password"
Dim comm As New OleDb.OleDbCommand(sql, conn)
comm.Parameters.AddWithValue("@username", _
username)
comm.Parameters.AddWithValue("@password", _
password)
Dim reader As OleDb.OleDbDataReader = _
comm.ExecuteReader
If reader.HasRows Then
Return True
Else
Return False
End If
conn.Close() Catch ex As Exception
Console.Write(ex.ToString)
Return False
End Try
End Function End Class
<?xml version="1.0" encoding="utf-8"?><configuration>
<appSettings/>
<system.web>
<compilation debug="true" strict="false" explicit="true" /> <authentication mode="Forms">
<forms loginUrl="Login.aspx"
protection="All"
timeout="40"
name="AppNameCookie"
path="/FormsAuth"
requireSSL="false"
slidingExpiration="true"
defaultUrl="default.aspx"
cookieless="UseCookies"
enableCrossAppRedirects="false"/>
</authentication> <authorization>
<allow users="*" />
</authorization> <sessionState
mode="InProc"
cookieless="false"
timeout="40"
/> <membership
defaultProvider="OracleMembershipProvider" >
<providers>
<clear/>
<add name="OracleMembershipProvider"
type="Oracle.OracleMembershipProvider"
requiresQuestionAndAnswer="true"
connectionString="Provider=Microsoft.Jet.
OLEDB.4.0;Data Source=D:\Members.mdb;Persist Security
Info=False" />
</providers>
</membership> </system.web>
</configuration>OracleMembershipProvider.vb代码如下:
Imports System.DataPublic Class OracleMembershipProvider
Inherits MembershipProvider Private connStr As String
Private comm As New OleDb.OleDbCommand
Private _requiresQuestionAndAnswer As Boolean
Private _minRequiredPasswordLength As Integer
Public Overrides Sub Initialize(ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection) '===retrives the attribute values set in
'web.config and assign to local variables===
If config("requiresQuestionAndAnswer") = "true" Then _
_requiresQuestionAndAnswer = True
connStr = config("connectionString")
MyBase.Initialize(name, config)
End Sub Public Overrides Function CreateUser(ByVal username As String, ByVal password As String, ByVal email As String, ByVal passwordQuestion As String, ByVal passwordAnswer As String, ByVal isApproved As Boolean, ByVal providerUserKey As Object, ByRef status As System.Web.Security.MembershipCreateStatus) As System.Web.Security.MembershipUser
Dim conn As New OleDb.OleDbConnection(connStr)
Try
conn.Open()
Dim sql As String = "INSERT INTO Member VALUES (" & _
"@username, @password, @email, " & _
" @passwordQuestion, @passwordAnswer )"
Dim comm As New OleDb.OleDbCommand(sql, conn)
comm.Parameters.AddWithValue("@username", username)
comm.Parameters.AddWithValue("@password", password)
comm.Parameters.AddWithValue("@email", email)
comm.Parameters.AddWithValue("@passwordQuestion", passwordQuestion)
comm.Parameters.AddWithValue("@passwordAnswer", passwordAnswer)
Dim result As Integer = comm.ExecuteNonQuery()
conn.Close() status = MembershipCreateStatus.Success
Dim user As New MembershipUser("AccessMembershipProvider", username, Nothing, email, passwordQuestion, Nothing, True, False, Now, Nothing, Nothing, Nothing, Nothing)
Return user
Catch ex As Exception
status = MembershipCreateStatus.UserRejected
Return Nothing
End Try
End Function Public Overrides Function ValidateUser( _
ByVal username As String, _
ByVal password As String) As Boolean Dim conn As New OleDb.OleDbConnection(connStr)
Try
conn.Open()
Dim sql As String = _
"Select * From Membership WHERE " & _
"username=@username AND password=@password"
Dim comm As New OleDb.OleDbCommand(sql, conn)
comm.Parameters.AddWithValue("@username", _
username)
comm.Parameters.AddWithValue("@password", _
password)
Dim reader As OleDb.OleDbDataReader = _
comm.ExecuteReader
If reader.HasRows Then
Return True
Else
Return False
End If
conn.Close() Catch ex As Exception
Console.Write(ex.ToString)
Return False
End Try
End Function End Class
http://www.devx.com/asp/Article/29256/1954?pf=true相关实现代码请参考:
http://www.ben-rush.net/source/OracleProviders/
<configuration >
<appSettings/> <connectionStrings>
<add name ="OracleConString" connectionString="server=localhost;database=orcl;uid=toeic21;pwd=toeic21;"/>
</connectionStrings>
<system.web> <compilation debug="true" strict="false" explicit="true" />
<authentication mode="Forms">
<forms name="AdminAuth" loginUrl="Login.aspx" protection="None" timeout="40"/>
</authentication> <authorization>
<allow users="*" />
</authorization> <sessionState
mode="InProc"
cookieless="false"
timeout="40"
/>
<membership>
<providers>
<clear/>
<add name="OracleMembershipProvider"
type="Admin.Membership.OracleMembershipProvider"
connectionString="user id=toeic21;data source=orcl;password=toeic21"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresUniqueEmail="false"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
applicationName="/" hashAlgorithmType="SHA1"
passwordFormat="Hashed"/>
</providers>
</membership>
</system.web>
</configuration>