Problem mit Login und CreateUserWizzard

Pageman2

Mitglied
Hallo Leute,

ich bin noch kein Profi und stehe im Moment vor einen für mich fats unlösbaren Problem. Ich habe eine Anmeldeseite erstellt mit dem Login Steuerelement und eine Seite zur Neuregistrierung mit dem CreateUserwizzard Steuerelement.
Jetzt müste ich die 2 Steuerelemente so konfigurieren das Sie auf eine von mir erstellte SQL Datenbank zugreifen. Ausserdem würde ich gerne für das Kennwort eine andere Gültigkeitsregel definieren.

Kann mir bitte jemand da weiterhelfen!

Danke
Pageman2
 
Hi Leute wollte mich nur mal bedanken das ihr hier neulingen so toll helft! Das Post ist hier bereits eine ewigkeit und keine Antwort! In anderen Foren geht das viel schneller weil da vielleicht mods sind die nicht die groß und kleinschreinbung als das wichtigste sehen sondern das problem und dessen lösung. Also bitte nicht böse sein aber meiner meinung nach hat im bereich asp oder besser gesagt im bereich .net diese seite keine zukunft oder es sollten mal mods her die weiter helfen wollen und können!!


mfg Pageman2
 
Hy Pageman2!

Das mit der Groß- Kleinschreibung ist insofern wichtig, weil ein Buchstabe reichen würde um aus dem Wort ein anderes zu machen und einen Abstaz zu lesen der nur aus fehlern besteht ist sehr anstrengend. Und da heut zu tage in den "anderen Foren" so ziehmlich alles abgekürzt wird, finde ich das wenn einer ein Problem hat, dies auch gescheit erklärt.

Jetzt zu deinem Problem:
Ich würde dir überhaupt reten das du für den Anfang keinen Wizzard verwendest, sondern die Steuerelemente selbst auf die Seite setzt.
Es gibt jetzt verschieden Wege das LogIn zu überprüfen. Du kannst z.B.: dein Username und Passwort in deiner Abfrage mit geben oder du holst dir einfach mal alle und überprüfst dann.

Dazu brauchst du eine Klasse, die so in etwa aussehen könnte
Code:
    Public Shared Function Abfragen(ByVal strQuery As String) As DataTable
        Dim dTable As New DataTable
        Dim con As New SqlConnection(GetConnString)
        Dim dAdapter As New SqlDataAdapter(strQuery, con)
        Try
            con.Open()
            dAdapter.Fill(dTable)
        Catch ex As Exception
            'hier kann man den Fehler auch in eine Logdatei schreiben
        Finally
            If con.State = ConnectionState.Open Then con.Close()
        End Try
        Return dTable
    End Function
Du brauchst zuerst eine DataTable, eine Verbindung (ConnectioString) und einen SQLDataAdapter.
Die Function für den ConnectionString kann so aussehen
Code:
    Private Shared Function GetConnString() As String
        Dim strCon As String = _
                            "Server=Computername;Database=DatenbankName;" & _
                            "User=Benutzer(meist sa);Password=****;Integrated Security=False"
        Return strCon
    End Function
Schlussendlich übergibst du eine Datatable.
Dann gehst mal jede Zeile durch und überprüfst die aktuelle Zeile, ob in der Spalte Username und in der Spalte Passwort, die Zeichen übereinstimmen.
Di Überprüfen kann etwa so aussehen.
Code:
If DataTable(Row(i).Item("Spalte")) = username oder password

Ahja, wegen deiner Gültigkeitsregel.
Da würde ich an deiner Steller ein Function schreiben die genau das Prüft was du brauchst. Falls du vorhast in der DB, das Passwort als einer anderen DatenTyp zu speichern, dann musst du das im Insert-Statement mitgeben.
 
So das ist die Antwort auf meine eigentliche Frage! Mit den Membership Provider kann man auf jede SQL Datenbank zugreifen und die Login Steuerelemente umleiten. Das gilt auch für alle anderen Anmeldesteuerelement wie z.B Create User Wizard oder LoginView.
Der unten Angezeigt Code gehört in die Web.config. Bei <add name="DBConnect"> muss euer Connectionstring eingefügt werden.
Mit dem Roleprovider habt ihr auch dann die Rollenverwaltung in der MS SQLDB.

mfg Pageman2


Code:
<configuration>
    <appSettings/>

  <connectionStrings>
    <add name="DBConnect" connectionString="Data Source=?;Initial Catalog=?;User ID=?;Password=?"
      providerName="System.Data.SqlClient" />
    
  </connectionStrings>

  <system.web>

    <membership>
      <providers>
      <remove name="AspNetSqlMembershipProvider" />
        <add name="AspNetSqlMembershipProvider"
            type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,             connectionStringName="DBConnect"
            enablePasswordRetrieval="false"
            enablePasswordReset="true"
            requiresQuestionAndAnswer="true"
            applicationName="/"
            requiresUniqueEmail="false"

            maxInvalidPasswordAttempts="5"
            minRequiredPasswordLength="2"
            minRequiredNonalphanumericCharacters="0"
            passwordAttemptWindow="10"
            passwordStrengthRegularExpression="" />
      </providers>
    </membership>

    <profile>
      <providers>
      <remove name="AspNetSqlProfileProvider" />
        <add name="AspNetSqlProfileProvider" connectionStringName="DBConnect" applicationName="/"
            type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral  />
      </providers>
    </profile>

    <roleManager enabled="true">
      <providers>
      <remove name="AspNetSqlRoleProvider" />
        <add name="AspNetSqlRoleProvider" connectionStringName="DBConnect" applicationName="/"
            type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral />
        
      </providers>
    </roleManager>
   


		<authentication mode="Forms">
			<forms loginUrl="login.aspx" protection="Validation" timeout="300" />
	
		
  




    </system.web>
</configuration>
 
Zurück