ASP.NET 成员资格-配置

发布时间:2020-01-24 18:26    浏览次数 :

[返回]

在程序文件中,我们可以使用 User.Identity.IsAuthenticated 来获得是否是登录用户,用 User.Identity.Name 来获得当前登录的用户名。

打开 machine.config(常常位于类似 C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG 的地方),可以找到类似如下代码:

  • Login 登录控件。
  • LoginView 设置模板,以给登录用户和未登录用户不同的显示。
  • PasswordRecovery 找回密码控件。
  • LoginStatus 登录状态控件,显示是否已经登录,并作“登录”或“注销”的链接。
  • LoginName 当前登录的用户名。
  • CreateUserWizard 创建用户的向导。
  • ChangePassword 更改密码控件。

说说 passwordFormat,可选值有:Clear、Encrypted、Hashed。

关于数据库连接,请参见数据库连接专题。我们这里使用的连接名称是 LocalSqlServer,也可以使用其它的,但其它配置也需要改,在下一节中将介绍。

使用了前面的,我们可能会发现一些地方不如我们的意,比如:数据库连接名不是我们想要的,创建用户时密码必须限定一个非字母数字字符,创建用户时必须输入找回密码的问题和答案……要改变这些,就得通过配置文件来改。

<configuration>
  <connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=ASPNETDB;Persist Security Info=False;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

说说 applicationName,一般来说每个应用程序都应使用不同的 applicationName 属性值,除非各个应用程序之间要共享用户(前提是共用一个成员资格数据库)。


  • ASP.NET 成员资格-介绍
  • ASP.NET 成员资格-使用
  • ASP.NET 成员资格-配置
  • ASP.NET 成员资格-自定义提供程序
  • ASP.NET 成员资格-扩展应用 1
  • ASP.NET 成员资格-扩展应用 2
  • ASP.NET 成员资格-如何获取用户的 Id

第二步、配置好数据库连接

membership 还有个属性 defaultProvider,它告诉登录控件等使用哪个成员资格提供程序,当我们提供了多个 provider 时,指明该属性值,以明确使用哪个 provider。登录控件等有个属性是 ProviderName,它能够覆盖 defaultProvider 值,但绝大多数情况下,一个应用程序都是使用一个 provider,所以不需要使用 ProviderName,明确 defaultProvider 就可。



打开 web.config 文件,添加一个数据库连接,示例如下:


第一步、配置好数据库

注意:拷贝上面的代码后可能需要添加 <remove name="AspNetSqlMembershipProvider"/> 以及 XML 结束标签(</providers> 等)。

<authentication mode="Forms"/>

  • ASP.NET 成员资格-介绍
  • ASP.NET 成员资格-使用
  • ASP.NET 成员资格-配置
  • ASP.NET 成员资格-自定义提供程序
  • ASP.NET 成员资格-扩展应用 1
  • ASP.NET 成员资格-扩展应用 2
  • ASP.NET 成员资格-如何获取用户的 Id