2016-05-16 9 views
0

So habe ich diesen Code, die eine Sitzung und leitet zu einer anderen Seite setzt:ASP.NET Session Fehler Staat, wenn Sie auf Seite umleiten

Protected Sub LoginButton_Click(sender As Object, e As EventArgs) 


    Dim CredentialsValid = Membership.ValidateUser(UserName.Text, Password.Text) 

    If (CredentialsValid) Then 
     'Add User Session stuff 
     Session.Add("MFUserName", UserName.Text) 
     Session.Add("MFPW", Password.Text) 
     Response.Redirect("MFACheck.aspx", False) 
    Else 


    End If 

End Sub 

Wenn durch den Code, die ich auf MFACheck.aspx landen, das hat dieser Code hinter:

Public Class MFACheck 

Inherits System.Web.UI.Page 

Dim UserName = Session.Item("MFUserName") 
Dim pw = Session.Item("MFPW") 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 


End Sub 

ich eine Störung erhalte, wenn ich diese Linie traf in MFACheck.aspx

Dim UserName = Session.Item("MFUserName") 

Der Fehler besagt, dass

Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration. 

Das Problem ist, dass ich scheinen, um jede dieser Anforderungen zu erfüllen. Hier ist die Seite Richtlinie über MFACheck.aspx

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/NoNav.Master" CodeBehind="MFACheck.aspx.vb" Inherits="REDACTEDFORSOPOST" EnableSessionState="true" %> 

Auch unter system.web in meinem web.config, ich habe dies:

<sessionState 
     timeout="30" 
     mode="InProc" 
     cookieless ="false"/> 

Und unter system.webServer, ich habe diesen

<modules> 
    <remove name="Session" /> 
    <add name="Session" type="System.Web.SessionState.SessionStateModule"/> 
</modules> 

Was fehlt mir? Ich habe anscheinend alle Voraussetzungen um meine Sitzung auf MFACheck.aspx zu lesen, warum gibt die Seite einen Fehler?

Vielen Dank für Ihre Hilfe/

+0

Setzen Sie es in den httpModules Abschnitt? – Kramb

Antwort

0

Wie @Kramb in einem Kommentar schrieb, es scheint, dass Sie die module Registrierung hier hinzufügen müssen:

<configuration>\<system.web>\<httpModules> 

Das web.config Schema und wo zu setzen, was abhängt auf der Version des Webservers, auf dem Ihre Anwendung ausgeführt wird. In älteren Versionen von IIS und auch (ich glaube) in der Cassini Server für lokale Debugging in älteren Versionen von Visual Studio, die modules und handlers sind direkt unter <system.web> registriert. In neueren Versionen sind sie unter <system.webServer>.

In diesem Fall scheint es, dass die von Ihnen verwendete Umgebung erwartet, dass sie unter <system.web> sind, also fügen Sie sie dort hinzu.