2016-04-27 7 views
0

Ich arbeite an dem Reset-Passwort-Code. Wenn der Benutzer auf den Reset-Passwort-Link klickt, der ihm per E-Mail geschickt wurde, sollte er auf sein Konto in der Anwendung umgeleitet werden. Ich habe bisher Folgendes getan. In der Web-Config ich die URL in der Schlüsselwertepaar fest einprogrammiert haben:Wie Sie eine Sitzung an eine URL in webconfig anhängen

<appSettings> 
<add key="RESET_PASSWORD" value="http://localhost:portnumber" /> 
</appSettings> 

Ich habe AppSettings verwendet, um den Schlüssel für reset_password zu speichern und übergeben es an einer Schnur

string resetpassword = System.Configuration.ConfigurationManager.AppSettings["RESET_PASSWORD"].ToString(); 

und ich habe bestanden Diese Zeichenfolge an das <a href>-Tag, das ich für das Zurücksetzen der Kennwortverknüpfung verwende.

Jetzt möchte ich die Session-ID zu übergeben und etwas tun, wie dies direkt im Web-config:

<add key="RESET_PASSWORD" value="http://localhost:portnumber?uid=<%=Session("userId")%>" /> 

Ist das möglich? Wie kann ich dies erreichen? Ich bekomme einen Fehler "AppSettings kann keinen Text enthalten", wenn ich dies versuche.

Antwort

0

cookieless="true" Einstellung tut dies automatisch für Sie.

Sie benötigen cookieless im session Teil Ihrer web.config zu ermöglichen.

Bitte beachten sessionState Element Configuration und About Cookieless session in ASP.NET

EDIT: Hoppla! Ich habe das Problem irgendwie falsch verstanden.

Da Sie ASP.NET MVC verwenden, würde ich vorschlagen, dass Sie Ihre Reset-Passwort-Seite (die, die von Mail öffnet) auf einige Controller-Aktion zuordnen. Sie müssen dann die Benutzer-ID und einen zufällig erzeugten Hash-Schlüssel als GET-Parameter übergeben und denselben Hash-Schlüssel in der Datenbank speichern. Wenn der Benutzer auf diesen in der Mail angegebenen Link klickt, müssen Sie überprüfen, ob eine Kombination mit der Benutzer-ID und dem Hash-Schlüssel in der Datenbank vorhanden ist. Wenn es eine gibt, dann ist die Anfrage gültig. Sie können dann mit Ihren weiteren Schritten fortfahren.

Sie können System.Guid.NewGuid() verwenden, um zufällige Hashtasten zu generieren. Sie sollten für diesen Zweck keine Sitzungs-IDs verwenden.

Verwandte Themen