关于nancy中的身份验证

 更新时间:2015年09月21日 15:27:08   投稿:mrr  
在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,本文重点介绍token验证,需要的朋友一起看看吧

在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 。

过期时间

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复杂

以上都是官网的代码中的方法和方式。

相关文章

  • C#实现AI五子棋游戏的示例代码

    C#实现AI五子棋游戏的示例代码

    这篇文章主要为大家详细介绍了C#如何智能AI五子棋游戏中的人工下棋操作以及对应的机器操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-11-11
  • C# IQueryable<T>揭开表达式树的神秘面纱

    C# IQueryable<T>揭开表达式树的神秘面纱

    这篇文章主要介绍了C# IQueryable<T>表达式树,对IQueryable<T>感兴趣的同学,必须要仔细看一下
    2021-04-04
  • WPF+DiffPlex实现文本比对工具

    WPF+DiffPlex实现文本比对工具

    现行的文本编辑器大多都具备文本查询的能力,但是并不能直观的告诉用户两段文字的细微差异,所以对比工具在某种情况下,就起到了很便捷的效率。本文将利用DiffPlex实现简易的文本比对工具,需要的可以参考一下
    2022-11-11
  • 浅聊一下C#中内存映射文件的玩法

    浅聊一下C#中内存映射文件的玩法

    内存映射文件是怎么玩的,说实话这东西理论我相信很多朋友都知道,就是将文件映射到进程的虚拟地址,说起来很容易,那如何让大家眼见为实呢,本文就来和大家简单聊聊
    2023-06-06
  • C#使用foreach语句遍历集合类型的方法

    C#使用foreach语句遍历集合类型的方法

    这篇文章主要介绍了C#使用foreach语句遍历集合类型的方法,可实现通过foreach语句遍历集合类的功能,需要的朋友可以参考下
    2015-06-06
  • C#实现在线更新软件

    C#实现在线更新软件

    winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了这一缺陷,有较好的参考价值
    2015-05-05
  • C#实现自定义单选和复选按钮样式

    C#实现自定义单选和复选按钮样式

    这篇文章主要为大家详细介绍了如何利用C#实现定义单选和复选按钮样式,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • C#跨PC远程调用程序并显示UI界面

    C#跨PC远程调用程序并显示UI界面

    这篇文章主要为大家介绍了使用C#跨PC远程调用程序并显示UI界面,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • WPF自定义Panel的示例详解

    WPF自定义Panel的示例详解

    WPF中默认的拖放操作可能并不是那么好用,为了解决这个问题,我们可以自定义一个 Panel 来实现更简单的拖拽操作,下面我们就来看看具体实现方法吧
    2024-03-03
  • Unity编辑器选择器工具类Selection常用函数示例详解

    Unity编辑器选择器工具类Selection常用函数示例详解

    这篇文章主要为大家介绍了Unity编辑器选择器工具类Selection常用函数示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论