麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

跨應(yīng)用程序進(jìn)行Forms身份驗(yàn)證詳解

2019-11-17 04:27:38
字體:
供稿:網(wǎng)友

  先仔細(xì)閱讀這段內(nèi)容:asp.net 支持在分布式環(huán)境中(跨單個(gè)服務(wù)器上的多個(gè)應(yīng)用程序或在網(wǎng)絡(luò)場中)進(jìn)行 Forms 身份驗(yàn)證。
  之前研究過多站點(diǎn)間的session共享的問題,這里說下跨應(yīng)用程序進(jìn)行 Forms 身份驗(yàn)證詳細(xì)實(shí)現(xiàn)方式,此方案的基礎(chǔ)就是“跨應(yīng)用程序進(jìn)行 Forms 身份驗(yàn)證”(幫助可點(diǎn)擊鏈接或是自己直接查找MSDN)。
  在VS2005中建立兩個(gè)Web應(yīng)用程度的項(xiàng)目,兩個(gè)項(xiàng)目都添加一個(gè)Default.aspx頁面,其中一個(gè)項(xiàng)目增加Login.aspx頁面,實(shí)現(xiàn)“Forms 身份驗(yàn)證”。
  在兩個(gè)項(xiàng)目的Default.aspx.cs代碼頁面添加如下代碼:view plaincopy to clipboardPRint?
Response.Write(User.Identity.Name); //輸出當(dāng)前Form認(rèn)證后登錄的用戶名 

Response.Write(User.Identity.Name); //輸出當(dāng)前Form認(rèn)證后登錄的用戶名  假設(shè)兩個(gè)項(xiàng)目的訪問地址如下:
  A項(xiàng)目:http://localhost/test/
  B項(xiàng)目(帶登錄):http://localhost:81/
  從上地址可以看出兩個(gè)項(xiàng)目處于不同的域名下,即兩個(gè)項(xiàng)目處于兩個(gè)不同的Web站點(diǎn)
  設(shè)置A項(xiàng)目的web.configview plaincopy to clipboardprint?
 <authentication mode="Forms"> 
 <!--  
  這里loginUrl是指向B項(xiàng)目的登錄頁面  
  注意:name、protection、path、validationKey、validation、decryptionKey 和 decryption 屬性必須在所有應(yīng)用程序中都完全相同  
 --> 
 <forms loginUrl="http:localhost:81/Login.aspx" path="/" protection="All" defaultUrl="http:localhost:81/Default.aspx" timeout="40" name=".DeESoft"> 
 </forms> 
 </authentication> 
 <machineKey 
 validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE" 
 decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F" 
 validation="SHA1" /> 
 <authorization> 
 <deny users="?" /> 
 </authorization> 

 <authentication mode="Forms">
 <!--
  這里loginUrl是指向B項(xiàng)目的登錄頁面
  注意:name、protection、path、validationKey、validation、decryptionKey 和 decryption 屬性必須在所有應(yīng)用程序中都完全相同
 -->
 <forms loginUrl="http:localhost:81/Login.aspx" path="/" protection="All" defaultUrl="http:localhost:81/Default.aspx" timeout="40" name=".DeESoft">
 </forms>
 </authentication>
 <machineKey
 validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
 decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
 validation="SHA1" />
 <authorization>
 <deny users="?" />
 </authorization>  再來設(shè)置B項(xiàng)目的web.configview plaincopy to clipboardprint?
 <authentication mode="Forms"> 
 <!--  
  注意:name、protection、path、validationKey、validation、decryptionKey 和 decryption 屬性必須在所有應(yīng)用程序中都完全相同  
 --> 
 <forms loginUrl="~/Login.aspx" path="/" protection="All" defaultUrl="~/Default.aspx" timeout="40" name=".DeESoft"> 
 </forms> 
 </authentication> 
 <machineKey 
 validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE" 
 decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F" 
 validation="SHA1" /> 
 <authorization> 
 <deny users="?" /> 
 </authorization> 

 <authentication mode="Forms">
 <!--
  注意:name、protection、path、validationKey、validation、decryptionKey 和 decryption 屬性必須在所有應(yīng)用程序中都完全相同
 -->
 <forms loginUrl="~/Login.aspx" path="/" protection="All" defaultUrl="~/Default.aspx" timeout="40" name=".DeESoft">
 </forms>
 </authentication>
 <machineKey
 validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
 decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
 validation="SHA1" />
 <authorization>
 <deny users="?" />
 </authorization>  完成并編譯后即可測試,可以訪問A項(xiàng)目的Default.aspx頁面,就會發(fā)現(xiàn)頁面已經(jīng)被跳轉(zhuǎn)到B項(xiàng)目的登錄頁面中去了,當(dāng)然也可以在A項(xiàng)目中也設(shè)置登錄驗(yàn)證頁面,登錄后又跳回A項(xiàng)目,顯示當(dāng)前“User.Identity.Name”的值,然后再在當(dāng)前窗口訪問B項(xiàng)目的default.aspx,也可以看到同樣的結(jié)果,當(dāng)其中一個(gè)項(xiàng)目注銷后,訪問兩個(gè)項(xiàng)目的Default.aspx都會跳轉(zhuǎn)到B項(xiàng)目的登錄頁面。
  關(guān)鍵部分說完了再來說說Session的問題。如果是常規(guī)的Session訪問操作辦法(非存入數(shù)據(jù)庫),AB兩個(gè)站點(diǎn)的Session是無法共享的,但能共享Forms 身份驗(yàn)證信息,我們就可以根據(jù)這個(gè)Forms 身份驗(yàn)證信息中的用戶名來新重新從數(shù)據(jù)庫中獲取需要存放到Session中的信息,然后存放到Session中供當(dāng)前項(xiàng)目使用。
  基本流程如下:
  用戶在A網(wǎng)站登錄 -> A程序根據(jù)User.Identity.Name的值取得相關(guān)用戶表中的信息 -> 存放到Session["User"]中 -> 此時(shí)訪問B項(xiàng)目頁面 -> 程序判斷Session["User"]的值是否是Null -> 如果是Null -> B程序根據(jù)User.Identity.Name的值取得相關(guān)用戶表中的信息 -> 存放到Session["User"]中

  最后再對這個(gè)machineKey補(bǔ)充下,你要覺得想省事點(diǎn)直接把MSDN上的加密后key復(fù)制一份就行。如果想自己生成一組Key,那么下載我提供的這個(gè)工具(帶原代碼),運(yùn)行文件在壓縮包中的Bin下面找

出處:http://blog.breakn.net/article.asp?id=440


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲天堂一级片 | 国产精品久久二区 | 国产最新网站 | 久久亚洲线观看视频 | 成人免费一区 | 综合网日日天干夜夜久久 | 久久狠狠高潮亚洲精品 | 亚洲午夜久久久久 | 国产激情精品一区二区三区 | 在线成人免费观看www | 91精品久久久久久久 | 欧美一区二区黄色 | 在线免费观看日韩视频 | 黄色免费小视频网站 | 久久人人爽人人爽人人片av高清 | 久久爽久久爽久久av东京爽 | 免费一级毛片网站 | 特级a欧美做爰片毛片 | 女人叉开腿让男人桶 | 激情宗合网 | 国产成人精品免费视频大全最热 | 国产在线精品91 | 亚洲精品一区二区三区大胸 | 亚洲影视在线观看 | 怦然心动50免费完整版 | 亚洲国产中文字幕 | 一区二区三区黄色 | 嗯哈~不行好大h双性 | 91专区在线观看 | 国产亚洲精品久久久闺蜜 | 欧美日韩成人一区二区 | 精品国产91久久久久久 | 99最新网址 | av电影网站在线 | 日韩字幕在线观看 | 欧美成人精品一区二区三区 | 污黄视频在线播放 | 免费看黄色一级片 | 特级黄aaaaaaaaa毛片 | 免费午夜网站 | 蜜桃一本色道久久综合亚洲精品冫 |