保存身份验证令牌的最佳方法?

时间:2012-02-09 15:31:47

标签: c# security token

我一直在努力在c#中实现api。实施进展顺利,但我确实遇到了一个问题。

当我的库已经授权反对api时,我有一个auth_token,我用它来对webservice进行后续查询。

令牌需要在程序运行之间保持,因为它对用户保持不变(尽管我确实检查它是否在应用程序启动时仍然有效)。

出于测试目的,我基本上只是将令牌保存到文本文件中,该文件保存在应用程序的根目录中。

这很好用,但这是最好的方法吗?

不确定用户会意识到它会保存在明文文件中(即使它在自己的电脑上)。

那么,保存令牌的一般做法是什么?

4 个答案:

答案 0 :(得分:0)

在项目属性中为项目创建设置文件,将AuthToken属性添加到已知设置(可能在用户级别),然后使用:

Properties.Settings.Default.AuthToken = userAuthToken;

如果您认为他们希望隐藏,加密或编码userAuthToken,那么它就不那么明显了。

答案 1 :(得分:0)

我会使用Windows Data Protection关于如何在C#中使用它,有很多examples。它使用特定于用户的密钥来加密数据。只有用户自己才能解密它。还要确保在服务器和客户端之间传输期间保护数据。

答案 2 :(得分:0)

您可以验证api是在asp.net或windows环境下使用(它足以检查Request是否为null),并且在第一种情况下使用cookie,后者将其保存在注册表项上。

答案 3 :(得分:0)

这可能适用于本地应用程序或在本地运行 CI,但如果您在 DevOps (Azure) 中,您的测试应用程序将驻留在您的 VM bin 文件夹中。每次部署后,您的 bin 文件夹都会被清除,因此您保存在 bin 文件中的令牌消失了。也许保存它的最佳方法是在发布管道中的 DevOps 环境变量之一中加密,这样您就不会丢失它。在本地运行时,您可以将其保存在任何地方。