ASP.NETAJAX开发:认证、数据与编程扩展全解析
立即解锁
发布时间: 2025-08-24 01:27:28 阅读量: 1 订阅数: 3 

### ASP.NET AJAX 开发:认证、数据与编程扩展全解析
#### 1. ASP.NET 中基于表单的身份验证
在 ASP.NET 开发中,配置基于表单的身份验证以使用会员服务是一项重要工作,下面为你详细介绍具体步骤。
##### 1.1 创建新的网站应用程序
- **创建网站**:在 Visual Studio 2005 中创建一个新的启用 ASP.NET AJAX 的网站,使用 HTTP 位置让网站在 IIS 上运行,将网站命名为 FormsSecured。
- **创建文件夹**:使用解决方案资源管理器创建两个新文件夹,分别命名为 AdminFolder 和 UserFolder,后续可在这些文件夹中放置不同角色访问的内容。
- **添加内容**:在每个文件夹中创建简单的 ASPX 文件,文件内容包含指示该文件夹的文本。
- **配置安全**:
- 打开 Visual Studio 的“网站”菜单,选择“ASP.NET 配置”,该工具将在浏览器中加载。
- 选择“安全”链接,进入安全管理屏幕。
- 由于默认使用 Windows 身份验证,对于外部用户需重新配置为表单身份验证。在“用户”面板中选择“选择身份验证类型”,选择“来自 Internet”。
- 返回安全管理屏幕,在“用户”面板添加新用户,如 Administrator 和 TestUser。
- 启用角色功能,创建“管理员”和“用户”两个角色。
- 为不同文件夹设置访问规则,如先拒绝所有用户访问 AdminFolder 和 UserFolder,再允许相应角色用户访问。
```mermaid
graph LR
A[创建网站] --> B[创建文件夹]
B --> C[添加内容]
C --> D[配置安全]
D --> D1[选择身份验证类型]
D --> D2[添加用户]
D --> D3[启用角色]
D --> D4[设置访问规则]
```
##### 1.2 创建登录功能
- **添加 LoginStatus 控件**:将 LoginStatus 控件拖到网站根文件夹的 Default.aspx 页面,默认会创建一个“登录”链接,用户可通过该链接访问登录页面。
- **创建登录页面**:在网站根目录创建新的 Login.aspx 页面,并添加 Login 控件。由于会员 API 已配置为与该名称页面配合使用,无需额外配置 LoginStatus 控件。若需使用不同名称的登录页面,可在 Web.config 文件中配置。
- **添加验证控件**:使用 ValidationSummary 控件进行登录验证,将其拖到页面并设置 ValidationGroup 属性为要验证的控件 ID,如 Login1。
#### 2. 为 Ajax 网站添加基于表单的身份验证
要在 Ajax 网站中添加基于表单的身份验证,需先配置服务器使用内置的身份验证服务。
##### 2.1 配置服务器
在 Web.config 文件中添加以下代码:
```xml
<system.web.extensions>
<scripting>
<webServices>
<authenticationService enabled="true"></authenticationService>
</webServices>
</scripting>
</system.web.extensions>
```
##### 2.2 实现登录功能
在 HTML 中添加输入控件:
```html
<input type="text" id="username" /><br />
<input type="password" id="password" />
<br />
<input type="button" id="btnSubmit"
onclick="doLogin()" value="Login" />
```
在 JavaScript 中实现 doLogin 函数:
```javascript
function doLogin()
{
username = $get("username");
password = $get("password");
Sys.Services.AuthenticationService.set_defaultLoginCompletedCallback(LoginComplete);
Sys.Services.AuthenticationService.login(username.value,
password.value, false,null,null,null,null,"Logged in from my AJAX page");
}
function LoginComplete(validCredentials, userContext, methodName)
{
alert(validCredentials);
alert(userContext);
alert(
```
0
0
复制全文
相关推荐










