Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Membership Provider und Co benutzen(ASP.NET)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.01.2007, 15:54 Uhr
Eroli



Hallo Freunde der leichten Unterhaltung

So, ich habe den Membershipprovider und alles was dazugehört ja schonmal benutzt und das ging auch alles. Jetzt wo ich meine Seite aber wieder lokal hoste geht nix mehr. ich habe eine neue MS SQL Datenbank wo alles rein soll und meine web.config sieht so aus:


Code:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <appSettings/>
    <connectionStrings>
      <add
        name="ConnectionString"
        connectionString="data source='3R0L1\SQLEXPRESS';User ID='Username';Password=Userpassword;database='Eroli';Initial Catalog=Eroli"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
  
    <location path="~/PublicUserCenter.aspx">
      <!-- <authorization>
        <deny users="?" />
        <allow users="*" />
      </authorization>  -->
    </location>
    <system.web>
      <anonymousIdentification cookieless="AutoDetect" enabled="true" />
      <authentication mode="Forms">
        <forms name="SqlAuthCookie" timeout="10" />
      </authentication>
      <compilation debug="true" strict="false" explicit="true" />
      <membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="20">
        <providers>
          <clear/>
          <add
            name="SqlMembershipProvider"
            type="System.Web.Security.SqlMembershipProvider"
            connectionStringName="ConnectionString"
            applicationName="%Projektname%"
            enablePasswordRetrieval="false"
            enablePasswordReset="true"
            requiresQuestionAndAnswer="false"
            requiresUniqueEmail="true"
            maxInvalidPasswordAttempts="5"
            minRequiredPasswordLength="5"
            minRequiredNonalphanumericCharacters="0"
            passwordAttemptWindow="10"
            passwordFormat="Hashed" />
        </providers>
      </membership>
      <pages>
        <namespaces>
          <clear/>
          <add namespace="System" />
          <add namespace="System.Collections" />
          <add namespace="System.Collections.Specialized" />
          <add namespace="System.Configuration" />
          <add namespace="System.Text" />
          <add namespace="System.Text.RegularExpressions" />
          <add namespace="System.Web" />
          <add namespace="System.Web.Caching" />
          <add namespace="System.Web.SessionState" />
          <add namespace="System.Web.Security" />
          <add namespace="System.Web.Profile" />
          <add namespace="System.Web.UI" />
          <add namespace="System.Web.UI.WebControls" />
          <add namespace="System.Web.UI.WebControls.WebParts" />
          <add namespace="System.Web.UI.HtmlControls" />
        </namespaces>
      </pages>
      <profile defaultProvider="SqlProfileProvider">
        <providers>
          <clear/>
          <add
            name="SqlProfileProvider"
            connectionStringName="ConnectionString"
            providerName="System.Data.SqlClient"
            applicationName="%Projektname%"
            type="System.Web.Profile.SqlProfileProvider,System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </providers>
      </profile>
      <roleManager enabled="true" cacheRolesInCookie="true" cookieName="Projektroles" defaultProvider="SqlRoleProvider">
        <providers>
          <clear />
          <add
            name="SqlRoleProvider"
            connectionStringName="ConnectionString"
            applicationName="%Projektname%"
            type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </providers>
      </roleManager>
    </system.web>

</configuration>



und den Fehler kriege ich:

Code:
Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.
Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.Data.SqlClient.SqlException: Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.

Quellfehler:

Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.

Stapelüberwachung:

[SqlException (0x80131904): Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +95
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +82
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +346
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +3244
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +186
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1121
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +334
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +407
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +149
   System.Web.Util.SecUtility.CheckSchemaVersion(ProviderBase provider, SqlConnection connection, String[] features, String version, Int32& schemaVersionCheck) +857
   System.Web.Security.SqlMembershipProvider.CheckSchemaVersion(SqlConnection connection) +114
   System.Web.Security.SqlMembershipProvider.GetPasswordWithFormat(String username, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& passwordFormat, String& passwordSalt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) +1075
   System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) +157
   System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved) +68
   System.Web.Security.SqlMembershipProvider.ValidateUser(String username, String password) +100
   System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider(AuthenticateEventArgs e) +99
   System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +113
   System.Web.UI.WebControls.Login.AttemptLogin() +178
   System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +133
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +56
   System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +107
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +177
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3840



Habt ihr eine Idee woran es liegen könnte???

viele Grüße,
Eroli

EDIT: Sorry, dass die Fehlermeldung so scheisse aussieht ^^ aber ist alles per C&P eingefügt...

Dieser Post wurde am 04.01.2007 um 15:55 Uhr von Eroli editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.01.2007, 17:23 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
schon einmal aspnet_regsql.exe ausgeführt?
(%windir%\Microsoft.NET\Framework\v2.0.... , einfach doppelklick oder als command line version ausführen.)
Siehe auch:
http://msdn2.microsoft.com/de-de/library/ms229862(vs.80).aspx
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 04.01.2007 um 17:24 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.01.2007, 18:21 Uhr
Eroli



Hey wow super! Klappt. Riesen Dank!

Eine Frage noch: Ist die web.config so in Ordnung oder ist da was zuviel/muss da was raus oder zuwenig?
Oder so: Was ist besser?
Version A:

Code:
<connectionStrings>
    <add name="ConnectionString" connectionString="data source='3R0L1\SQLEXPRESS';User ID='Eroli';Password=PW;database='Eroli';"/>
  </connectionStrings>
  
  <system.web>
    <authentication mode="Forms">
      <forms name=".ASPXAUTH" loginUrl="~/PublicUserCenter.aspx"/>
     </authentication>
    <customErrors mode="Off"/>
   <compilation debug="true"/>
    
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
      <providers>
        <clear />
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="ConnectionString"
          applicationName="%Projektname%"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          requiresUniqueEmail="true"
          passwordFormat="Hashed" />
      </providers>
    </membership>
    
    <profile>
      <providers>
        <remove name="AspNetSqlProfileProvider" />
        <add name="AspNetSqlProfileProvider"
           connectionStringName="ConnectionString"                          
           applicationName="/"
           type="System.Web.Profile.SqlProfileProvider,
             System.Web, Version=2.0.0.0, Culture=neutral,                  
             PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </profile>
    
    <roleManager>
      <providers>
        <remove name="AspNetSqlRoleProvider" />
        <add name="AspNetSqlRoleProvider"
        connectionStringName="ConnectionString"
        applicationName="/"
        type="System.Web.Security.SqlRoleProvider,
              System.Web, Version=2.0.0.0, Culture=neutral,
              PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>
    
    
  </system.web>

  <system.net>
    <mailSettings>
      <smtp from="Addy">
        <network host="mail.gmx.net" password="PQ" userName="Addy"/>
      </smtp>
    </mailSettings>
  </system.net>


oder Version B:

Code:
<appSettings/>
    <connectionStrings>
      <add
        name="ConnectionString"
        connectionString="data source='3R0L1\SQLEXPRESS';User ID='Eroli';Password=PW;database='Eroli';"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
  
    <location path="~/PublicUserCenter.aspx">
      <authorization
        <deny users="?" />
        <allow users="*" />
      <authorization/>
  </location>
  <system.web>
    <anonymousIdentification cookieless="AutoDetect" enabled="true" />
    <authentication mode="Forms">
      <forms name="SqlAuthCookie" timeout="10" />
    </authentication>
    <compilation debug="true" strict="false" explicit="true" />
    <membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="20">
      <providers>
        <clear/>
        <add
          name="SqlMembershipProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="ConnectionString"
          applicationName="%Projektname%"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="false"
          requiresUniqueEmail="true"
          maxInvalidPasswordAttempts="5"
          minRequiredPasswordLength="5"
          minRequiredNonalphanumericCharacters="0"
          passwordAttemptWindow="10"
          passwordFormat="Hashed" />
      </providers>
    </membership>
    <pages>
      <namespaces>
        <clear/>
        <add namespace="System" />
        <add namespace="System.Collections" />
        <add namespace="System.Collections.Specialized" />
        <add namespace="System.Configuration" />
        <add namespace="System.Text" />
        <add namespace="System.Text.RegularExpressions" />
        <add namespace="System.Web" />
        <add namespace="System.Web.Caching" />
        <add namespace="System.Web.SessionState" />
        <add namespace="System.Web.Security" />
        <add namespace="System.Web.Profile" />
        <add namespace="System.Web.UI" />
        <add namespace="System.Web.UI.WebControls" />
        <add namespace="System.Web.UI.WebControls.WebParts" />
        <add namespace="System.Web.UI.HtmlControls" />
      </namespaces>
    </pages>
    <profile defaultProvider="SqlProfileProvider">
      <providers>
        <clear/>
        <add
          name="SqlProfileProvider"
          connectionStringName="ConnectionString"
          providerName="System.Data.SqlClient"
          applicationName="%Projektname%"
          type="System.Web.Profile.SqlProfileProvider,System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </profile>
    <roleManager enabled="true" cacheRolesInCookie="true" cookieName="Projektroles" defaultProvider="SqlRoleProvider">
      <providers>
        <clear />
        <add
          name="SqlRoleProvider"
          connectionStringName="ConnectionString"
          applicationName="%Projektname%"
          type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>
  </system.web>
  <system.net>
    <mailSettings>
      <smtp from="Addy">
        <network host="mail.gmx.net" password="PQ" userName="Addy"/>
      </smtp>
    </mailSettings>
  </system.net>


Dieser Post wurde am 04.01.2007 um 18:26 Uhr von Eroli editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.01.2007, 16:47 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Eroli,
Sry das ich erst jetzt antworte, war untwerwegs...
Zum Thema
Mir stellt sich hier die Frage warum für einen einfachen Login so viel Aufwand?
Die von ASP.Net mitgebrachten Login-Controls sind (zweifellos) eine gute Sache.
ASP.Net legt aber intern jede Menge Tabellen, Views etc. an, was sich zum Teil auch in der web.config wiederspiegelt. Braucht man aber wirklich für einen Login das ganze (Overhead) Zeugs?
IMO nicht.
Schau Dir mal das Bsp. an.
www.fun-soft.de/downloads/WebSite1.zip
Dort findest Du im Ordner "App_Code" eine Klasse die von MembershipProvider abgeleitet ist.
Schau Dir dort mal die Methode "ValidateUser(...)" an.
Im Ordner "App_data" liegt die DB, welche Du (zum testen) bei Deinem System anmelden musst.
Auf Verschlüsselung der Daten hab ich im Beispiel verzichtet.

Bearbeitung von uwe:
Zip-File auf Server gelöscht

--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 05.01.2007 um 22:53 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.01.2007, 17:03 Uhr
Eroli



Hallo Uwe.

Egal, wie lange du weg warst, macht nix.

Zum Thema,

es ist ja eigentlich nicht nur ein einfacher Login. Die Homepage sollte im Laufe der Zeit eine wirklich ziemlich komplexe werden, deswegen denke ich, dass ich mit den Controls von ASP.NET im Endeffekt vielleicht sehr gut gebrauchen kann. Voerst ist es zwar ein "einfacher" Login, doch dies wird sich bald ändern --> alles wird komplexer.

Wenn ich es so läuft, wie ich es mir vorstelle(oder eher der ein Bekannter, der mich bat ihm so etwas zu machen), dann werden sich bald mehrere tausend user auf dieser HP einloggen und ausloggen etc pp. Das das bis dahin noch ein weiter weg ist, steht ausser frage.

Dann noch etwas, ich las in irgendeinem Forum, dass diese Controls wohl sehr sicher seien und das ist für mich ja nur von vorteil, oder? Wenn später Geldgeschäfte über diese HP abgewickelt werden sollen oder was weiß ich, dann kann das nur gut sein!


Das mit dem Overhead ist zwar ne dumme Sache, aber wenn man daran nicht vorbeikommt? Warum sollte ich einige hunderte Zeilen QUelltext schreiben, wenn mir ASP.NET schon fertige(bessere) Alternativen liefert?


Versteh mich nicht falsch, ich bin wirklich dankbar für deinen Post und will dich jetzt auch nicht irgendwie anfahren oder so. Aber das obige ist meine Meinung. Wir können sehr sehr gerne darüber diskutieren, vielelicht lässt sich ja ne *noch* bessere Lösung finden.

Viele Grüße,
Eroli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.01.2007, 18:27 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat von Eroli:

...und will dich jetzt auch nicht irgendwie anfahren oder so....

Hab ich nicht so aufgenommen
Was soll's den werden? Ein Webshop?
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.01.2007, 01:09 Uhr
Eroli



[quote]
Was soll's den werden? Ein Webshop?
[/qoute]
Ja, sowas ähnliches. Dem ganzen liegt ein, zumindest für den ersten Blick, gut durchdachtes Konzept eines Vaters eines Freundes zu Grunde. Es geht in Richtung ICH-AG's und wird wohl so ähnlich wie My-Hamer oder Ebay werden. Ob es fruchtet? Weiß ich nicht! Ich hoffe schon, denn das wäre dann mein erstes produktives Projekt.

Es ist sicherlich ein verdammt weiter Weg bis dahin, aber wie ich das so sehe, kann ohne eure Unterstützung eigentlich nix schief laufen ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: