nancy中的身份验证
在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,其中如果是使用cookie来保存身份的, 需要注意的是:cookie有大小的限制,所以不能用来保存超过4k的信息,而且有一些js插件也要用的cookie,虽然html5好像多了。但是还是要注意一下。因为之前看到文章有的人网站有时候登陆出现问题,就是因为用户信息太大导致的。
这里说的是token的验证。
ITokenizer
这个是定义token的接口,Tokenizer是它的一个实现,你可以自己实现,比如过期,加密等。
ITokenKeyStore
这是服务器保存登陆用户身份信息的库。 private ITokenKeyStore keyStore = new FileSystemTokenKeyStore(); 这行代码意思是使用文件的方式来保存用户信息。而InMemoryTokenKeyStore 在内存中保存用户信息。你可以使用自己的方式来保存用户的登陆信息,只要实现ITokenKeyStore 。源码中的InMemoryTokenKeyStore 只是测试用的。
过期时间
private Func tokenExpiration = () => TimeSpan.FromDays(1); private Func keyExpiration = () => TimeSpan.FromDays(7); 这是默认的过期时间
身份信息
登陆后,一般会返回一个json格式的信息 其中有token的键值
token的传递
获取到token后,如果你把它保存到cookie,然后发送出去,就和stateless差不多。怎么传递呢?nancy是用在信息头里添加的方式,就是在Header里加入名为Authorization的字段这是测试实例中的代码 with.Header("Authorization", "Token " + token); 用jquery的ajax调用,也可以添加,请自行搜索。看到上面的代码,需要注意的是要在传递token的值前加上字符串"token",我就是直接把token的值传了过去,怎么也不好使。
TokenAuthentication.cs文件中的 var authorization = request.Headers.Authorization;这句就是用来服务器读取authorization信息的。
var apiKey = (string) nancyContext.Request.Query.ApiKey.Value;而stateless是用Request.Query来传递的,apikey是根据guid生成的,貌似没有token复杂
以上都是官网的代码中的方法和方式。
转载于:https://www.cnblogs.com/wang2650/p/4824707.html
nancy中的身份验证相关推荐
- nancy 文件服务器,关于nancy中的身份验证
在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,其中如果是使用cookie来保存身份的, 需要注意的是:cookie有大小的限 ...
- 登录工程:传统 Web 应用中的身份验证技术
标题中 "传统 Web 应用" 这一说法也并没有什么官方定义,只是为了与"现代化 Web 应用"形成比较而自拟的一个概念.所谓现代化 Web 应用指的是那些基于 ...
- outlook 服务器身份验证,Outlook 加载项中的身份验证选项
Outlook 加载项中的身份验证选项 06/22/2021 本文内容 Outlook 加载项可以访问 Internet 上任意位置的信息,无论是托管加载项的服务器.内部网络,还是云中的其他位置. 如 ...
- 替换SQL Server中Windows身份验证登陆名buildin\Administrator
以Administrator账户登陆服务器的人员,均可以以buildin\Administrator登陆数据库,并且拥有sysadmin最大权限.而能够使用Administrator登陆服务器可能包括 ...
- 在ASP.NET应用程序中捕捉身份验证状态的变化
前年我写过一篇随笔抱怨Microsoft在ASP.NET架构中Session_End事件上处理,说来惭愧,其实当年我对ASP.NET运行时的复杂性理解不足.实话说,捕捉通过身份验证和注销身份验证对我来 ...
- ASP.NET MVC中的身份验证
传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...
- sqlserver中window身份验证跟sql server身份验证的区别
1.集成的Windows身份验证语法 1 string constr = "server=.;database=myschool;integrated security=SSPI" ...
- asp.net中的窗体身份验证(分目录验证篇)
在上一篇博文<asp.net中的窗体身份验证(最简单篇)>中的身份验证虽然很简单,但是有一个缺点,就是访问整个网站都必须要经过身份验证,而事实上,很多网站都不会这么要求的. 比如一个新闻系 ...
- 如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证
在上一篇文章中,我向您展示了如何在Java应用程序中启用Spring安全性 ,今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 . 如 ...
最新文章
- JPA不同包下同类名查询出错
- Oracle日常巡检
- C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用
- Spring Boot-@PropertySource注解
- Node.js Up and Runing 学习日记(八)
- Tomcat服务器性能优化
- python 成员函数 泛型函数_【一点资讯】白学这么多年 Python?连泛型函数都不会写? www.yidianzixun.com...
- 利用遗传算法求解TSP问题
- Dijkstra最短路径算法
- std::thread
- Cisco思科交换机路由器命令快速入门
- Wordpress网站渗透测试(进阶详细思路)
- python交通流预测算法_使用KNN方法进行的短时交通流预测和结果分析
- MAXIMO开发代码记录
- 三年前,故事这样开始 三年后,故事这样延续---2015年终总结
- 密码就快要彻底消失了,没有人怀念它
- Javascript ES6(一)
- 2021高考成绩查询理综各科得分,2021四川高考总分及各科分数 满分是多少
- 人生感悟之——因果关系
- T3服务器IP地址去哪里修改,用友t3服务器ip地址修改