SessionParameter erst nach Reload gefüllt

And-DA

Grünschnabel
Hallo Zusammen,

ich möchte direkt nach einem Login eine Liste mit zum User verknüpften Items anzeigen.
Allerdings scheint trotz erfolgtem Login nicht Session-Parameter gefüllt zu werden. Erst nach erneutem Laden der Seite wird der SessenParameter korrekt ausgewertet. Hat jemand eine Idee?

Hier mein Code:

Code:
<%@ Page Language="C#" Debug="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    
    string UserID;
    protected void LoginStatus1_LoggedOut(Object sender, System.EventArgs e)
    {
        LoginStatus1.Visible = false;
        LoginStatus1.Enabled = false;
        LoginName1.Visible = false;
        //Session.RemoveAll();
        Session.Abandon();
    }

    void OnLoggedIn(object sender, EventArgs e)
    {
        LoginStatus1.Visible=true;
        LoginStatus1.Enabled = true;
        LoginName1.Visible = true;
        if (Session["UserID"] == null)
        {
            // userdaten holen
            MembershipUser myObject = Membership.GetUser();

            if (myObject != null)
            {
                object tmpUserID = myObject.ProviderUserKey.ToString();
                Session.Add("UserID", tmpUserID);
                UserID = Session["UserID"].ToString() ;
            }
        }
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title>Kochbücher anzeigen</title>
</head>
<body>

    <form id="form1" runat="server">

	<div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
         <br />   
        <asp:LoginName ID="LoginName1" runat="server" FormatString ="Hallo {0} <BR />" />
        <asp:LoginStatus ID="LoginStatus1" runat="server" logoutAction="Refresh" OnLoggedOut="LoginStatus1_LoggedOut" LoginText=""/>
        <asp:Login ID="Login1" runat="server" style="text-align: right" VisibleWhenLoggedIn="False" FailureText="Benutzername oder Kennwort falsch!"></asp:Login>
        <br />

        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:KBConnectionString %>" 
            
            
            SelectCommand="SELECT Kochbuecher.Kochbuch, Kochbuecher.ID, Kochbuecher.Erfassungsdatum, user_kochbuecher.[user] FROM Kochbuecher, User_Kochbuecher Where Kochbuecher.ID = User_Kochbuecher.Kochbuch AND User_Kochbuecher.[User] = @UserID">
<SelectParameters>
    <asp:SessionParameter Name="UserID" SessionField="UserID" />
</SelectParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="#333333" 
            GridLines="None">
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <Columns>
                <asp:HyperLinkField DataNavigateUrlFields="ID" 
                    DataTextField="Kochbuch" HeaderText="Meine Kochbücher" />
            </Columns>
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#999999" />
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        </asp:GridView>
    
    </div>
    </form>
</body>
</html>

Danke, Andreas
 
Zurück