在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中的身份验证相关推荐

  1. nancy 文件服务器,关于nancy中的身份验证

    在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,其中如果是使用cookie来保存身份的, 需要注意的是:cookie有大小的限 ...

  2. 登录工程:传统 Web 应用中的身份验证技术

    标题中 "传统 Web 应用" 这一说法也并没有什么官方定义,只是为了与"现代化 Web 应用"形成比较而自拟的一个概念.所谓现代化 Web 应用指的是那些基于 ...

  3. outlook 服务器身份验证,Outlook 加载项中的身份验证选项

    Outlook 加载项中的身份验证选项 06/22/2021 本文内容 Outlook 加载项可以访问 Internet 上任意位置的信息,无论是托管加载项的服务器.内部网络,还是云中的其他位置. 如 ...

  4. 替换SQL Server中Windows身份验证登陆名buildin\Administrator

    以Administrator账户登陆服务器的人员,均可以以buildin\Administrator登陆数据库,并且拥有sysadmin最大权限.而能够使用Administrator登陆服务器可能包括 ...

  5. 在ASP.NET应用程序中捕捉身份验证状态的变化

    前年我写过一篇随笔抱怨Microsoft在ASP.NET架构中Session_End事件上处理,说来惭愧,其实当年我对ASP.NET运行时的复杂性理解不足.实话说,捕捉通过身份验证和注销身份验证对我来 ...

  6. ASP.NET MVC中的身份验证

    传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...

  7. sqlserver中window身份验证跟sql server身份验证的区别

    1.集成的Windows身份验证语法 1 string constr = "server=.;database=myschool;integrated security=SSPI" ...

  8. asp.net中的窗体身份验证(分目录验证篇)

    在上一篇博文<asp.net中的窗体身份验证(最简单篇)>中的身份验证虽然很简单,但是有一个缺点,就是访问整个网站都必须要经过身份验证,而事实上,很多网站都不会这么要求的. 比如一个新闻系 ...

  9. 如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证

    在上一篇文章中,我向您展示了如何在Java应用程序中启用Spring安全性 ,今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 . 如 ...

最新文章

  1. JPA不同包下同类名查询出错
  2. Oracle日常巡检
  3. C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用
  4. Spring Boot-@PropertySource注解
  5. Node.js Up and Runing 学习日记(八)
  6. Tomcat服务器性能优化
  7. python 成员函数 泛型函数_【一点资讯】白学这么多年 Python?连泛型函数都不会写? www.yidianzixun.com...
  8. 利用遗传算法求解TSP问题
  9. Dijkstra最短路径算法
  10. std::thread
  11. Cisco思科交换机路由器命令快速入门
  12. Wordpress网站渗透测试(进阶详细思路)
  13. python交通流预测算法_使用KNN方法进行的短时交通流预测和结果分析
  14. MAXIMO开发代码记录
  15. 三年前,故事这样开始 三年后,故事这样延续---2015年终总结
  16. 密码就快要彻底消失了,没有人怀念它
  17. Javascript ES6(一)
  18. 2021高考成绩查询理综各科得分,2021四川高考总分及各科分数 满分是多少
  19. 人生感悟之——因果关系
  20. T3服务器IP地址去哪里修改,用友t3服务器ip地址修改

热门文章

  1. 华为鲲鹏HCIA-Kunpeng Application Developer V1.5考试样题
  2. 对use case的一点理解
  3. XXL-JOB适配人大金仓数据库kingbase
  4. 路由器上的usb接口有什么用_解决USB接口不够用,毕亚兹Type-C扩展坞体验测评
  5. 如何选择适合你的兴趣爱好(七十),表演
  6. 提升客户生命周期价值(CLV)的5大方法
  7. centos断电后无法启动
  8. 图像物体分类与检测算法综述
  9. 首都师范 博弈论 3 3 1求解二人零和博弈
  10. 26.Vue列表渲染中key的作用与原理(内含虚拟DOM的对比算法详解)