轉(zhuǎn)帖|其它|編輯:郝浩|2010-12-10 14:39:36.000|閱讀 552 次
概述:單點登錄(Single Sign On)簡稱SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。在開發(fā)企業(yè)門戶網(wǎng)站或電子商務(wù)系統(tǒng)時,設(shè)計一個用戶只能在同一網(wǎng)站進行惟一登錄的功能。本文主要介紹用ASP.NET實現(xiàn)單點登錄網(wǎng)站,希望對大家有幫助。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
單點登錄(Single Sign On)簡稱SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。在開發(fā)企業(yè)門戶網(wǎng)站或電子商務(wù)系統(tǒng)時,設(shè)計一個用戶只能在同一網(wǎng)站進行惟一登錄的功能。
Cache對象主要用于Web應(yīng)用程序的緩存。對于每個應(yīng)用程序都需要創(chuàng)建Cache對象的一個實例,并且只要對應(yīng)的應(yīng)用程序域保持活動,該實例便保持有效,有關(guān)Cache對象實例的所有信息都須通過HttpContext對象的Cache屬性或Page對象的Cache屬性來提供。
本實例中,把用戶的登錄信息保存在Cache對象中,并設(shè)置過期時間為Session變量失效的時間,因此,一旦Session變量失效,Cache對象也就過期了;但Cache對象對所有的用戶還可以訪問,因此,用它保存用戶信息比數(shù)據(jù)庫來得方便。
實現(xiàn)關(guān)鍵代碼如下:
protected void btnLogin_Click(object sender, EventArgs e)
{
int i = this.checkLogin(txtName.Text,txtPwd.Text);
if (i> 0)
{
string str_Key = txtName.Text + "_" + txtPwd.Text;
// 得到Cache中的給定str_Key的值
string str_User = Convert.ToString(Cache[str_Key]);
// Cache中如果沒有str_Key的項目,那么用戶沒有登錄
if (str_User == String.Empty)
{
// TimeSpan構(gòu)造函數(shù),用來判斷是否登錄。
TimeSpan SessTimeOut = new TimeSpan(0,0,HttpContext.Current.Session.Timeout,0,0); HttpContext.Current.Cache.Insert(str_Key,str_Key,null,DateTime.MaxValue,SessTimeOut, CacheItemPriority.NotRemovable,null);
Session["User"] = str_Key;
// 首次登錄成功
Response.Write("<h2 style='color:red'>你好,登錄成功!");
}
else
{
// 在 Cache 中存在該用戶的記錄,表名已經(jīng)登錄過,禁止再次登錄
Response.Write("<h2 style='color:red'>抱歉,您好像已經(jīng)登錄了!");
return;
}
}
else
{
Response.Write("用戶名稱或密碼錯誤!!!");
}
}
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載