熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

在ASP.NET中使用Windows登錄[3]

2013-11-13 12:16:12  來源: .NET編程 
    ——此文章摘自《ASPNET網絡數據庫開發實例精解》定價 特價 詳細>>

    private bool AuthenticateUser(string UserName string Password
    string Domain)
    {              //設置用戶登錄成功的標志
    bool flag = false;
    try
    {
    int num;IntPtr ptr;
    //調用Windows登錄的API
    if(!LogonUser(UserName Domain Password out num))
    {   //返回登錄結果
    return flag;
    }
    //調用NET中的Windows登錄
    ptr = new IntPtr(num);
    WindowsIdentity identity = new WindowsIdentity(ptr);
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    HttpContextCurrentUser = principal;
    //設置系統Cookie和重定向頁面
    FormsAuthenticationSetAuthCookie(principalIdentityNamefalse);
    FormsAuthenticationRedirectFromLoginPage(UserName false);
    flag = true;
    }
    catch (Exception){}
    return flag;
    }

    單擊頁面WindowsLoginaspx中的【確定】按鈕觸發事件UserLoginBtn_Click (object sender SystemEventArgs e)該事件調用函數Login(string UserName string Password string Domain)實現Windows登錄事件UserLoginBtn_Click()的程序代碼如下
    private void UserLoginBtn_Click(object sender SystemEventArgs e)
    {              //驗證用戶的輸入是否為空
    if(tDomainTextTrim()Length > && tUserNameTextTrim()Length >
    && tPasswordTextTrim()Length > )
    {   //調用函數Login(string UserName string Password string Domain)
    //實現Windows登錄
    if(Login(tUserNameTextTrim()tPasswordTextTrim()
    tDomainTextTrim()) == true)
    {   //顯示登錄成功信息
    LoginMsgText = 登錄成功!!!;
    LoginMsgVisible = true;
    return;
    }
    else
    {   //顯示登錄失敗信息
    LoginMsgText = 登錄失敗請重新輸入用戶名稱密碼及其系統域名!!!;
    LoginMsgVisible = true;
    }
    }

    }

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15542.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.