王朝百科
分享
 
 
 

Membership

王朝百科·作者佚名  2010-02-06  
宽屏版  字体: |||超大  

验证用户凭据并管理用户设置。无法继承此类。

命名空间:System.Web.Security

程序集:System.Web(在 system.web.dll 中)

语法

Visual Basic(声明)

Public NotInheritable Class Membership

Visual Basic(用法)

可对静态类的成员直接进行访问,无需类的实例。

C#

public static class Membership

C++

public ref class Membership abstract sealed

J#

public final class Membership

JScript

public final class Membership

备注

在 ASP.NET 应用程序中,Membership 类用于验证用户凭据并管理用户设置(如密码和电子邮件地址)。Membership 类可以独自使用,或者与 FormsAuthentication 一起使用以创建一个完整的 Web 应用程序或网站的用户身份验证系统。Login 控件封装了 Membership 类,从而提供一种便捷的用户验证机制。

Membership 类提供的功能可用于:

创建新用户。

将成员资格信息(用户名、密码、电子邮件地址及支持数据)存储在 Microsoft SQL Server 或其他类似的数据存储区。

对访问网站的用户进行身份验证。可以以编程方式对用户进行身份验证,也可以使用 Login 控件创建一个只需很少代码或无需代码的完整的身份验证系统。

管理密码,包括创建、更改、检索和重置密码等等。可以选择配置 ASP.NET 成员资格以要求一个密码提示问题及其答案来对忘记密码的用户的密码重置和检索请求进行身份验证。

虽然 ASP.NET 成员资格是 ASP.NET 中用来进行身份验证的独立功能,但它可以与 ASP.NET 角色管理集成来为站点提供授权服务。成员资格还可以与 ASP.NET 用户的 System.Web.Profile 集成,以提供可为各个用户量身订做的特定于应用程序的自定义实现。有关详细信息,请参见 了解角色管理 和 ASP.NET 配置文件属性概述。

Membership 类依赖于成员资格提供程序与数据源通信。.NET Framework 包括一个 SqlMembershipProvider(将用户信息存储在 Microsoft SQL Server 数据库中)和一个 ActiveDirectoryMembershipProvider(允许在 Active Directory 或 Active Directory 应用程序模式 (ADAM) 服务器上存储用户信息)。还可以实现一个自定义成员资格提供程序与可由 Membership 类使用的其他类似的数据源进行通信。自定义成员资格提供程序将继承 MembershipProvider 抽象类。有关更多信息,请参见 实现成员资格提供程序。

默认情况下,ASP.NET 成员资格可支持所有 ASP.NET 应用程序。默认成员资格提供程序为 SqlMembershipProvider 并在计算机配置中以名称 AspNetSqlProvider 指定。SqlMembershipProvider 的默认实例配置为连接到 Microsoft SQL Server 的一个本地实例。

可以通过修改默认设置将一个非 AspNetSqlProvider 实例的 SqlMembershipProvider 指定为默认提供程序,或使用 Web.config 文件将自定义提供程序的实例指定为 ASP.NET 应用程序的默认提供程序。可以使用 Web.config 文件中 membership 配置节来为 Web 应用程序指定 ASP.NET 成员资格配置。可以使用 membership 节的 providers 子节来指定默认提供程序之一以外的成员资格提供程序。例如,下面的 membership 节从当前应用程序配置中移除默认成员资格提供程序并添加一个名为 SqlProvider 的新提供程序,它连接到名为 MySqlServer 的 SQL Server 实例。

<configuration>

<connectionStrings>

<add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />

</connectionStrings>

<system.web>

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">

<providers>

<remove name="AspNetSqlProvider" />

<add name="SqlProvider"

type="System.Web.Security.SqlMembershipProvider"

connectionStringName="SqlServices"

enablePasswordRetrieval="false"

enablePasswordReset="true"

requiresQuestionAndAnswer="true"

passwordFormat="Hashed"

applicationName="/" />

</providers>

</membership>

</system.web>

</configuration>

Topic Location

演练:使用成员资格和用户登录创建网站 (Visual Studio)

示例

下面的代码示例演示配置为使用 Forms 身份验证和 ASP.NET 成员资格的 ASP.NET 应用程序的登录页。如果提供的用户凭据无效,则会向用户显示一条消息。否则,使用 RedirectFromLoginPage 方法将用户重定向到最初请求的 URL。

注意

ASP.NET 登录控件(Login、LoginView、LoginStatus、LoginName 和 PasswordRecovery)实际上封装了提示用户输入凭据及验证成员资格系统中的凭据所需的所有逻辑并可以在使用 Membership 类来进行编程检查的位置使用。

Visual Basic 复制代码

<%@ Page Language="VB" %>

<%@ Import Namespace="System.Web.Security" %>

<script runat="server">

Public Sub Login_OnClick(sender As Object, args As EventArgs)

If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then

FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)

Else

Msg.Text = "Login failed. Please check your user name and password and try again."

End If

End Sub

</script>

<html>

<head>

<title>Login</title>

</head>

<body>

<form runat="server">

<h3>Login</h3>

<asp:Label id="Msg" ForeColor="maroon" runat="server" /><P>

Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR>

Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR>

<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />

<asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer.

</form>

</body>

</html>

C# 复制代码

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Web.Security" %>

<script runat="server">

public void Login_OnClick(object sender, EventArgs args)

{

if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))

FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);

else

Msg.Text = "Login failed. Please check your user name and password and try again.";

}

</script>

<html>

<head>

<title>Login</title>

</head>

<body>

<form runat="server">

<h3>Login</h3>

<asp:Label id="Msg" ForeColor="maroon" runat="server" /><P>

Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR>

Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR>

<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />

<asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer.

</form>

</body>

</html>

.NET Framework 安全性

AspNetHostingPermission 用于在宿主环境中使用 Membership 类。要求值:LinkDemand。权限值:Minimal。

继承层次结构

System.Object

System.Web.Security.Membership

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有