<em id="hanht"></em>

    <dd id="hanht"></dd>

    <em id="hanht"><acronym id="hanht"></acronym></em>
    
    <button id="hanht"></button>
    <rp id="hanht"><object id="hanht"><blockquote id="hanht"></blockquote></object></rp><em id="hanht"></em>

    首頁 > 開發 > .Net > 正文

    Login控件:用戶登錄失敗的消息提示

    2023-04-28 11:48:28
    字體:
    來源:轉載
    供稿:網友

      ASP.NET 2.0提供了一套強大的身份驗證體系,并且伴隨一套登錄控件的推出,使得ASP.NET 2.0開發者在做用戶注冊-登錄驗證功能模塊時大大降低了開發費時。

      但是我們發現在使用Login登錄控件時我們只能使用它的FailureText 屬性獲取或設置當登錄嘗試失敗時顯示的文本,當登錄嘗試失敗時向用戶顯示的文本,默認為“您的登錄嘗試失敗,請重試。”

      但是在使用ASP.NET 2.0的Membership體系時可能產生登錄失敗的情況不僅僅是用戶名/密碼不正確而產生的,也能由于帳戶被鎖定了(MembershipUser.IsLockedOut=True)或是程序需要帳戶不能進行資ge驗證(比如注冊用戶需要審核才能正式開通,一般使用MembershipUser.IsApproved=False)又或者自己擴展了一些其他的附屬Profile驗證失敗……但是,使用Login登錄失敗時,默認卻只能顯示我們設置的FailureText的內容。當然,出于安全性的考慮MS并不推薦您把具體的登錄失敗的信息顯示給用戶,例如,像“用戶 <username> 的密碼無效”這樣的錯誤信息向潛在的攻擊者透漏了 <username> 是系統的用戶這一情況。

      不過,有時我們還是希望能在帳戶被鎖定時顯示“您的帳戶被鎖定”,在為審核時顯示“您的帳戶正在審核中……”,那么要怎么顯示給用戶呢?一種最簡單的辦法是在Login.LoginError 事件中做處理。

      比如:

    protected void Login1_LoginError(object sender, EventArgs e)
    {
    Login l = (Login)sender;
    MembershipUser u = Membership.GetUser(l.UserName);
    if (!u.IsApproved)
    {
        l.FailureText = "帳戶證在審核中";
        return;
    }
    if (u.IsLockedOut)
    {
        l.FailureText = "您的帳戶已經被鎖定";
        return;
    }
    // 默認錯誤消息提示
    l.FailureText = "您的登錄嘗試失敗,請重試。";
    }

      當然,您可以通過重載等更高級的方法來實現這一功能。

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    一级特黄大片欧美久久久久_一本一道久久综合狠狠老_JLZZ日本人年轻护士_欧美男男作爱VIDEOS可播放
      <em id="hanht"></em>

      <dd id="hanht"></dd>

      <em id="hanht"><acronym id="hanht"></acronym></em>
      
      <button id="hanht"></button>
      <rp id="hanht"><object id="hanht"><blockquote id="hanht"></blockquote></object></rp><em id="hanht"></em>