首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MembershipPasswordFormat.Hashed?这是怎么回事?

MembershipPasswordFormat.Hashed?这是怎么回事?
EN

Stack Overflow用户
提问于 2010-01-11 17:21:09
回答 3查看 1.4K关注 0票数 1

开门见山:

我可以将密码散列加密算法放在成员提供程序中的什么位置?或者:微软团队将加密方法放在哪里?

因为:我选择了Hash,但密码在我的数据库中是明码的。

非常感谢:)

-更新

很抱歉没有提到,我正在使用我自己的自定义提供者。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-11 18:08:17

这是使用add element在the配置的Membership Provider configuration中指定的

代码语言:javascript
复制
<!-- SqlMembershipProvider syntax -->
<add name="string" 
  type="string" 
  connectionStringName="string"
  applicationName="MyApplication"
  commandTimeout
  description
  enablePasswordRetrieval="false"
  enablePasswordReset="true"
  passwordFormat="Hashed"
  minRequiredPasswordLength
  minRequiredNonalphanumericCharacters
  passwordStrengthRegularExpression
/>

默认算法是在成员资格提供程序中定义的SHA1,但如果要使用hashAlgorithmType属性,则可以覆盖此算法:

代码语言:javascript
复制
<membership
  defaultProvider="provider name"
  userIsOnlineTimeWindow="number of minutes"
  hashAlgorithmType="SHA1">
  <providers>...</providers>
</membership>

有关提供自己的算法的更多详细信息,请参阅"Mapping Algorithm Names to Cryptography Classes"

请注意,该格式覆盖了密码检索之类的内容-哈希密码无法检索,如果在哈希密码时调用GetPassword,则提供程序应该返回异常(请参见EnablePasswordRetrieval属性)。

如果您已经编写了自己的MembershipProvider,我建议您查看一下"How to: Sample Membership Provider Implementation",特别是EncodePasswordUnencodePassword方法。

票数 2
EN

Stack Overflow用户

发布于 2010-01-11 17:42:55

不确定,但我认为密码是以纯文本保存的,因为启用了“密码检索”。您可以通过设置。

票数 1
EN

Stack Overflow用户

发布于 2010-01-11 17:44:09

这是XML配置中提供程序的一个选项。docs显示您刚刚设置了"passwordFormat='hashed'“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2040830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档