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 。

过期时间

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

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

时间: 2024-12-23 06:32:20

nancy中的身份验证的相关文章

用Retrofit发送请求中添加身份验证

用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DELETE, Retrofit使用起来都非常简单.只要稍微看一下文档,就知道怎么用.但文档没有具体说明怎么怎么发送带auth信息的请求.本文分享两个代码片段. 比如要发送这样的请求,在header中添加身份验证信息,用户名和密码: http -a user1:user1password POST htt

sqlserver 2012 IDE中 Windows身份验证连接服务器报错 ,Login failed for user 'xxx\Administrator'. 原因: 找不到与提供的名称匹配的登录名。

问题描述: 本地装了两个实例,一个是SQLEXPRESS,可以正常操作.但是另一个开发常用的实例MSSQLSERVER却连Windows身份验证都报错,报的错误也是很奇葩,怎么会找不到Administrator那,我登录计算机进来就用的这个账号. 详细错误如下: 无法连接到 xxx.===================================用户 'xxx\Administrator' 登录失败. (.Net SqlClient Data Provider)--------------

在Django中定制身份验证

在Django中定制身份验证 Django附带的认证对于大多数常见情况来说已经足够了,但您可能需要通过开箱即用的默认设置才能满足需求. 要为您的项目定制身份验证,需要了解提供的系统的哪些点可扩展或可替换. 身份验证后端为用户模型存储的用户名和密码需要针对与Django默认不同的服务进行身份验证时提供了一个可扩展的系统. 您可以给您的模型定制可以通过Django的授权系统进行检查的权限. 您可以扩展默认的用户模型,或者替换完全自定义的模型. 其他验证来源 您可能有时需要挂接到另一个身份验证来源 -

AngularJS中的身份验证

欢迎大家指导与讨论 : )  一.  身份验证的意义    首先呢,网络应用的身份验证的意图在于:保护网站中的重要资源.基于某些原因这些资源并不能公开,比如付费资源(交过钱的用户才能上的网络课程),或者一些管理功能.  二. 1. 客户端身份验证——保护API访问资源  二. 2. 客户端身份验证——使用路由定义受保护资源 首先我们需要四样工具.1. angular常量constant. 2. $routerProvider配置为每个路由配置权限. 3. 创建一个能操作cookie并判断是否有权

sql server 2008 windows验证改混合登陆中SqlServer身份验证用户名密码

安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本主题介绍如何在安装后更改安全模式. 如果在安装过程中选择“Windows 身份验证模式”,则 sa 登录名将被禁用.如果稍后将身份验证模式更改为“SQL Server 和 Windows 身份验证模式”,则 sa 登录名仍处于禁用状态.若要启用 sa 登录帐户,请使用 ALTER LOGIN 语句. 安全说明: sa 帐户是一个广为人知的 SQL Serv

SQL Server中服务器身份验证及用户登录

安装过程中,SQL Server 数据库引擎设置为"Windows 身份验证模式"或"SQL Server 和 Windows 身份验证模式". 安装完成后,您可以随时更改身份验证模式. 如果在安装过程中选择了"Windows 身份验证模式",则 sa 登录名将被禁用,安装程序会分配一个密码. 如果稍后将身份验证模式更改为"SQL Server 和 Windows 身份验证模式",则 sa 登录名仍处于禁用状态. 若要使用 s

EXCHANGE客户端访问服务器(CAS)中的身份验证方式

在部署完毕exchange后系统会自动建立IIS服务来响应相应的请求.客户端访问服务器(以下简称CAS)实质上是一台IIS服务器,在服务器中部署一套名为"Default web site"的站点来完成OWA.ecp.activesync.outlookanywhere.autodiscover等应用的响应. tips:Default web site 站点对应的是CAS服务器角色Exchange back end 站点对应的是邮箱服务器角色 如果想改变身份验证方式,启动IIS管理器,找

ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释

ASP.NET身份验证模式包括Windows.Forms(窗体).Passport(护照)和None(无). l  Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,ASP.NET依赖于IIS对用户进行验证,并创建一个Windows访问令牌来表示已通过验证的标识.IIS提供以下几种身份验证机制: l  Passport身份验证.使用这种身份验证模式时,ASP.NET使用Microsoft Passport的集中式身份验证服务,该服务为成员站点提供单一登录和核心配置文

[小技巧][ASP.Net MVC Hack] 使用 HTTP 报文中的 Header 字段进行身份验证

在一些 Web 系统中,身份验证是依靠硬件证书进行的:在电脑上插入 USB 证书,浏览器插件读取证书的相关信息,然后在发送 HTTP 登录请求时顺便在 Header 字段附加上身份信息.服务器端处理这样的登录请求的思路也很简单,就是读取 HTTP Header 相关信息,然后进行相应的处理. 在 ASP.Net MVC 架构的网站中,自然也可以使用这样的机制,下面基于 Visual Studio 2012 演示一下操作步骤. 首先建立一个ASP.Net MVC 4 项目. 选择模板的时候,保留默