關(guān)于nancy中的身份驗(yàn)證
在nancy中,身份驗(yàn)證分為basic ,form ,token,stateless幾種,basic和form這里不說了,其中如果是使用cookie來保存身份的, 需要注意的是:cookie有大小的限制,所以不能用來保存超過4k的信息,而且有一些js插件也要用的cookie,雖然html5好像多了。但是還是要注意一下。因?yàn)橹翱吹轿恼掠械娜司W(wǎng)站有時(shí)候登陸出現(xiàn)問題,就是因?yàn)橛脩粜畔⑻髮?dǎo)致的。
這里說的是token的驗(yàn)證。
ITokenizer
這個(gè)是定義token的接口,Tokenizer是它的一個(gè)實(shí)現(xiàn),你可以自己實(shí)現(xiàn),比如過期,加密等。
ITokenKeyStore
這是服務(wù)器保存登陸用戶身份信息的庫。 private ITokenKeyStore keyStore = new FileSystemTokenKeyStore(); 這行代碼意思是使用文件的方式來保存用戶信息。而InMemoryTokenKeyStore 在內(nèi)存中保存用戶信息。你可以使用自己的方式來保存用戶的登陸信息,只要實(shí)現(xiàn)ITokenKeyStore 。
過期時(shí)間
private Func tokenExpiration = () => TimeSpan.FromDays(1); private Func keyExpiration = () => TimeSpan.FromDays(7);
這是默認(rèn)的過期時(shí)間
身份信息
登陸后,一般會返回一個(gè)json格式的信息 其中有token的鍵值
token的傳遞
獲取到token后,如果你把它保存到cookie,然后發(fā)送出去,就和stateless差不多。怎么傳遞呢?nancy是用在信息頭里添加的方式,就是在Header里加入名為Authorization的字段這是測試實(shí)例中的代碼 with.Header("Authorization", "Token " + token); 用jquery的ajax調(diào)用,也可以添加,請自行搜索??吹缴厦娴拇a,需要注意的是要在傳遞token的值前加上字符串"token",我就是直接把token的值傳了過去,怎么也不好使。
TokenAuthentication.cs文件中的 var authorization = request.Headers.Authorization;這句就是用來服務(wù)器讀取authorization信息的。
var apiKey = (string) nancyContext.Request.Query.ApiKey.Value;而stateless是用Request.Query來傳遞的,apikey是根據(jù)guid生成的,貌似沒有token復(fù)雜
以上都是官網(wǎng)的代碼中的方法和方式。
欄 目:C#教程
下一篇:C#獲取客戶端相關(guān)信息實(shí)例總結(jié)
本文標(biāo)題:關(guān)于nancy中的身份驗(yàn)證
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6956.html
您可能感興趣的文章
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10C#中查找Dictionary中的重復(fù)值的方法
- 01-10C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法
- 01-10C#中的事務(wù)用法實(shí)例分析
- 01-10C#實(shí)現(xiàn)讀取DataSet數(shù)據(jù)并顯示在ListView控件中的方法
- 01-10C#中的正則表達(dá)式介紹
- 01-10C#開發(fā)中的垃圾回收機(jī)制簡析
- 01-10C#語言中的修飾符匯總
- 01-10C#中的 == 和equals()區(qū)別淺析
- 01-10C#通過正則表達(dá)式實(shí)現(xiàn)提取網(wǎng)頁中的圖片


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?