2009-05-12 12 views
0

Ich habe ein Problem mit der Login-Steuerung.Ich habe drei Seiten namens Login, Secret und register.Ich habe meine geheime Seite gesichert mit Login-Steuerelement und wenn ich meine geheime Seite anfordern, leiten Sie mich zum Login Seite, die mir gut ist. aber Problem ist, dass, wenn ich hier auf den Registerlink klicke, es nicht zur Registerseite leitet, bis ich jedes korrekte enrty fülle. Wenn ich korrekten LOGON/Kennwort fülle, verweist es mich zur geheimen Seite. jetzt, wenn ich wieder auf die Login-Seite komme und jetzt auf den Register-Link klicke, verweise ich auf die Registrierungsseite. Das ist jetzt in Ordnung.Problem mit Login-Steuerelement

i Create und createtexturl Eigentum der Anmeldung verwendet habe mir Steuerung heraus in dieser Hinsicht zu helfen ...

Ich habe den follwing Code in Web-Konfigurationsdatei.

<roleManager enabled="true"/> 
    <authentication mode="Forms"/> 
    <authorization> 
     <deny users="?"/> 
    </authorization> 

und nach in der Quelldatei ......

<asp:Login ID="Login1" runat="server" 
    DestinationPageUrl="~/Secret.aspx" 
    CreateUserText="New User Register" 
    CreateUserUrl="~/register.aspx" 
    FailureText="You are not registered.....try agian.." /> 

Antwort

1

Klingt wie Sie nicht nur „gesichert“ haben Ihre geheime Seite, sondern auch die Registerseite.

Der Code, den Sie in Ihre Frage eingegeben haben, ist nicht sichtbar (Sie sollten den Code auswählen und auf die Schaltfläche mit den 0 und 1 klicken), aber versuchen Sie, etwas zum Konfigurationsabschnitt Ihrer web.config hinzuzufügen.

<location path="register.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 
+0

Danke für Ihre Antwort .... Herr Janzi Ich versuchte dieses, aber es funktioniert nicht. –

+0

Haben Sie definitiv den richtigen Pfad angegeben? Janzi's Antwort sieht aus wie die richtige für mich – RichardOD

0

Amit,

Um zu überprüfen, ob das Problem mit Ihrer Genehmigung Setup ist, können Sie vorübergehend wie dies versuchen:

<authorization> 
<allow users="*" /> 
</authorization> 

Wenn alles nach dieser Überprüfung funktioniert, dass <location path="register.aspx"> ist Richtig- Hast du es in einem Unterordner?

+0

mit dieser Arbeit, aber jetzt kann ich direkt die geheime Seite öffnen. Das will ich nicht. –

+1

OK, um zu bestätigen, dass Sie ein Autorisierungsproblem haben. Sie müssen nun sicherstellen, dass Sie den Pfad für den Standort korrekt konfigurieren. – RichardOD

0

Hmm, jetzt, dass wir den Code sehen können, haben wir eine bessere Chance, Sie zu helfen;)

Sie haben nicht so viel gesagt, aber ich gehe davon aus, dass Sie alle drei Dateien haben - Login, Register und Geheimnis im selben Ordner?

Wenn ja, was Sie sagen, dies mit:

<authorization> 
    <deny users="?"/> 
</authorization> 

Ist „Deny alle anonymen Benutzern den Zugriff auf diese Seiten“ - und dies ist die Lage überschreiben „können alle Benutzer“ Option von Janzi vorgeschlagen.

Probieren Sie einige der folgenden Möglichkeiten:

//Folder structure 
web.config - Root Web.config 
Login.aspx - login page 
Register.aspx - registration page 
/Secret - Folder called "Secret" 
/web.config - web.config in "Secret" 
/Secret.aspx - secret pages 

Die web.config im/Geheime Ordner sollte nur enthalten:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
     <authorization> 
      <deny users="?" /> 
     </authorization> 
    </system.web> 
</configuration> 

Während Ihr Root web.config Ihre Mitgliedschaft Provider definiert, definiert die Einstellungen für Formulare Auth, etc.

Alternativ können Sie die web.config in/Secret entfernen und verwenden Sie einfach ein Standortelement im Stamm web.config: