簡體   English   中英

從登錄控制ASP.NET返回

[英]Control ASP.NET Return from Login

我有一個要求,當用戶在完成多表格數據提交過程時登錄時,他們的個人資料將根據他們已經提交的數據進行檢查,並且某些類別的用戶將被顯示警報消息; 即一些用戶在登錄時會收到彈出消息。

彈出窗口將使用Ajax工具包中的ModalPopupExtender,它與代碼庫中其他地方的類似功能一致。

我遇到的問題是,一旦用戶被驗證,用戶總是被重定向到原始頁面; 我想暫停此操作,直到用戶顯示該消息,然后在用戶單擊以關閉消息時執行重定向。

任何人都可以建議一個解決方案(使用.NET 3.5)?

編輯

由於已經要求,登錄頁面有一個包含控件的用戶控件。 該控件處理OnAuthenticate事件,該事件基本上調用:

    protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
    {
        bool isValidUser = Membership.ValidateUser(FullLogin.UserName, FullLogin.Password);

        if (isValidUser)
        {
            e.Authenticated = true;
        }
       ...
    }

它還處理LoggedIn事件,該事件執行一些業務邏輯並引發頁面處理的“LogInSuccessful”或“LoginFailed”事件。 成功登錄會將用戶重定向回原始頁面。

當信息框被解除時,我已經重構了要調用的手動重定向代碼,但似乎表單身份驗證是自動重定向用戶,這是我試圖覆蓋的行為。

當您使用表單身份驗證登錄時,用戶將被帶到登錄表單並通過asp.net返回到原始頁面。

一旦您對用戶進行了身份驗證,就會將他帶回原始頁面。 如果必須在此頁面上執行此操作,則必須為此組用戶取消身份驗證,然后顯示該消息。

protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
    {
        bool isValidUser = Membership.ValidateUser(FullLogin.UserName, FullLogin.Password);

        Session["isValidUser"] = isValidUser;
        if (!Session.ContainsKey("isValidUser"))
        {
            e.Authenticated = false;
        }
        else
        {
          e.Authenticated = (bool)Session["isValidUser"];
        }
       ...
    }

當用戶單擊“確定”按鈕時,您必須回發並驗證用戶身份。 這將需要您在會話中存儲先前調用的身份驗證結果。

將此消息放在公共母版頁中可能更簡單,讓asp將用戶帶回原始頁面並在那里顯示消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM