Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#认证安全最佳实践_C#_Authentication - Fatal编程技术网

C#认证安全最佳实践

C#认证安全最佳实践,c#,authentication,C#,Authentication,我正在努力加强我的C#应用程序身份验证的安全性。 我有自己的服务器进行身份验证,并实现了一个服务,可以从动态生成的随机salt创建新密码哈希,并可以根据保存下来的密码+哈希的salt验证密码。我将把散列的pw+salt保存在服务器端的xml文件中 问题1。储存盐,然后让用户在每次启动seision时输入密码是否更安全? 问题2。我想让用户(在公司局域网内)更容易,并允许“自动”根据其广告登录用户名进行身份验证。最好的方法是什么?我是否可以在客户端保存一个令牌或证书,该令牌或证书大约每周超时一次

我正在努力加强我的C#应用程序身份验证的安全性。 我有自己的服务器进行身份验证,并实现了一个服务,可以从动态生成的随机salt创建新密码哈希,并可以根据保存下来的密码+哈希的salt验证密码。我将把散列的pw+salt保存在服务器端的xml文件中

问题1。储存盐,然后让用户在每次启动seision时输入密码是否更安全? 问题2。我想让用户(在公司局域网内)更容易,并允许“自动”根据其广告登录用户名进行身份验证。最好的方法是什么?我是否可以在客户端保存一个令牌或证书,该令牌或证书大约每周超时一次

干杯,
Lasse

简短回答:BCrypt

如中所述:

Bcrypt拥有密码算法所能达到的最佳声誉:它已经存在了相当长的一段时间,使用相当广泛,“吸引了人们的注意”,但至今仍未被打破


我在这里写了一篇关于如何在各种框架中实现BCrypt的详细文章:

如果您使用AD,为什么不使用Windows身份验证?这可以防止用户每次都必须登录。你可以在你的配置文件中插入一个广告成员资格提供者,使网站可信。还有人知道如何使其符合SOX吗?我是否需要添加所有失败登录和密码更改的日志记录?我无法控制工作中的广告提供商,并且当我想要添加用户时,它会减慢速度(繁文缛节)。我可以设置我自己的平行广告提供商吗?但你说你想使用广告登录,所以不使用广告会员提供商怎么会更快呢?他们仍然需要先添加,对吗?您所需要的只是域上的服务帐户。设置一个平行广告听起来不值得这么做。在所有使用AD的实现中,我从未控制过AD。看起来不错,我可以在不使用SQL Server的情况下设置自己的自定义提供程序。