SqlMembershipProvider中的PasswordFormat 属性

1.属性值

一个 MembershipPasswordFormat 值,表示用于在 SQL Server 数据库中存储密码的格式。

 

 2.备注

SQL Server 成员资格提供程序支持 ClearEncryptedHashed 密码格式。Clear 密码以明文形式存储,可提高密码存储和检索的性能,但安全性较低,因为如果 SQL Server 数据库的安全受到威胁,可轻松读取密码。Encrypted 密码在存储时加密,并可解密以进行密码比较或密码检索。此类密码在存储和检索时需要进行额外的处理,但比较安全,在 SQL Server 数据库的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希计算。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。

ASP.NET 应用程序的 Web.config 文件的 providers 节中指定了 PasswordFormat 值。

EncryptedHashed 密码默认情况下基于配置的 machineKey 元素中提供的信息进行加密或哈希计算。请注意,如果为 validation 属性指定了 3DES 值,或者没有指定值,则将使用 SHA1 算法对哈希密码进行哈希计算。

可使用 membership 元素(ASP.NET 设置架构) 配置元素的 hashAlgorithmType 属性定义一个自定义哈希算法。如果选择加密,默认密码加密则使用 AES。可以通过设置 machineKey 配置元素的 decryption 属性更改加密算法。如果要对密码进行加密,则必须为 machineKey 元素中的 decryptionKey 属性显式提供一个值。对 ASP.NET 成员资格使用加密密码时不支持 decryptionKey 属性的 AutoGenerate 默认值。

ASP.NET Web 应用程序批量添加用户信息,可以使用 ASP.NET 内置的 Membership 提供的 API。以下是一个简单的示例: 1. 在 Web.config 文件配置 Membership: ```xml <connectionStrings> <add name="MembershipDB" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MembershipDB;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <membership defaultProvider="SqlMembershipProvider"> <providers> <clear /> <add name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MembershipDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" /> </providers> </membership> </system.web> ``` 2. 在代码使用 Membership API 来批量添加用户: ```csharp using System.Web.Security; string[] usernames = { "user1", "user2", "user3" }; string[] passwords = { "password1", "password2", "password3" }; string[] emails = { "user1@example.com", "user2@example.com", "user3@example.com" }; for (int i = 0; i < usernames.Length; i++) { MembershipCreateStatus status; Membership.CreateUser(usernames[i], passwords[i], emails[i], null, null, true, out status); if (status == MembershipCreateStatus.Success) { // 用户创建成功 } else { // 用户创建失败 } } ``` 以上示例,我们首先定义了要添加的用户名、密码和邮箱地址的数组。然后使用 for 循环遍历数组,调用 Membership.CreateUser 方法来创建用户。如果用户创建成功,就可以在 if 分支进行相应的处理,如果创建失败,则可以在 else 分支进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值