小编Tho*_*eck的帖子

使用JWT在Asp.net Web API上实现身份验证

我一直在读JWT.

但从我读到的内容来看,它不是一种身份验证机制,而更像是身份验证机制中的一个关键组件.

我目前已经实现了一个有效的解决方案,但它只是试用JWT并看看它是如何工作的.但我现在所追求的是如何利用它.根据我的经验,它基本上只是一种加密机制,可以为您提供唯一的加密密钥.您还可以将信息放在此令牌内.

我希望在ASP.NET web api 2上实现它以供移动应用程序使用.

所以第1步:

  1. app =>服务器:登录(用户,密码)
  2. Server => app:登录OK,继承你的JWT
  3. app => server:获取我的个人资料(发送带请求的JWT)服务器然后解密JWT并确定请求身份.

现在这只是我对它的理解,看起来我可能走在完全错误的道路上.

是JWT的理想选择,以便您不必在每次请求时进行身份验证吗?我只是验证用户凭证一次(在初始登录时),然后服务器可以简单地使用JWT,而不必在数据库中查找用户pw和用户?

我只想使用JWT来识别用户身份.然后,在我对它们进行身份验证后,我将授权.据我所知,新的MVC和身份验证和授权存在很大的混淆.

那么我的问题归结为什么.

如何使用JWT安全有效地实施身份验证机制?我不想只是咳嗽似乎有用的东西而且没有任何关于安全隐患的想法.我确信存在一些可能设计出符合我要求的安全机制的源.

我的要求是:

  • 每次会话只需要一次性检查db for users凭据吗?由于使用bcrypt使用大量资源来比较密码.
  • 必须能够从他们的请求中识别用户.(即他们是谁,userId就足够了),最好也不用访问数据库
  • 对于处理请求的服务器端的资源,应尽可能降低开销.
  • 如果入侵者必须复制设备先前的请求,那么他应该无法访问真实用户数据.(明显)

谢谢

authentication jwt asp.net-web-api

56
推荐指数
2
解决办法
4万
查看次数

使用FakeItEasy的Out和Ref参数

我有一个方法,其out参数返回许多记录.我想知道如何用FakeItEasy来嘲笑它.

.net c# tdd mocking fakeiteasy

25
推荐指数
1
解决办法
4375
查看次数

从可能性池中选择FsCheck生成器

有没有办法在FsCheck中生成一个字符串,只从每个字符串列表中选择一个项目然后连接结果?

我只是完全陷入困境,似乎无法弄明白.我查看了文档github repo中的类似内容.而且我已经从FSharpForFunAndProfit完成了对FsCheck的大部分阅读.

这就像我想的那样:

let rand = System.Random()
let randInt max = rand.Next(0, max)

let selectLetter (string: string) = 
    let whichLettersIndex = String.length string |> randInt
    string.Substring(whichLettersIndex, 1)

let generateOddlySpelledWord listOfStrings = 
    List.map selectLetter listOfStrings
    |> String.concat ""

let usingGenerateOddlySpelledWord =
    generateOddlySpelledWord ["zZ"; "oO0Ò"; "eEê"]
Run Code Online (Sandbox Code Playgroud)

这应该产生类似"Z0ê"或"zÒE"的东西.

f# fscheck

6
推荐指数
1
解决办法
351
查看次数

标签 统计

.net ×1

asp.net-web-api ×1

authentication ×1

c# ×1

f# ×1

fakeiteasy ×1

fscheck ×1

jwt ×1

mocking ×1

tdd ×1