代码示例:ASP.NET 简单窗体
更新时间:2015 年 6 月 19 日
适用于:Azure
此示例演示如何将 ACS 与 ASP.NET Web Forms 应用程序集成。 此示例的代码位于 Microsoft Azure Active Directory 访问控制 (ACS) 代码示例包的 ASPNETSimpleForms (C#\Websites/ASPNETSimpleForms) 子目录中。
先决条件
若要运行此示例,需要:
Azure 门户和访问控制命名空间中的帐户。
Visual Studio 2010 (任何版本)
Windows Identity Foundation SDK
有关详细信息,请参阅 ACS 先决条件 (https://go.microsoft.com/fwlink/?LinkId=221065) 。
配置示例
可以使用 ACS 管理门户或 ACS 管理服务来执行此示例所需的 ACS 配置。 本主题介绍了这两个选项。
选项 1:使用 ACS 管理门户配置示例
选项 2:使用 ACS 管理服务配置示例
选项 1:使用 ACS 管理门户配置示例
使用 ACS 管理门户配置示例
转到Microsoft Azure管理门户 () https://manage.WindowsAzure.com 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)
若要创建访问控制命名空间,请依次单击“新建”、“应用程序服务”和“访问控制”,然后单击“快速创建”。 (或者,先单击“访问控制命名空间”,然后单击“新建”。)
若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)
此操作将打开访问控制服务管理门户。
若要与你希望网站用户在登录时使用的标识提供程序建立关系,请单击“标识提供程序”,然后添加 Yahoo! 和 Google。 然后,单击“主页”,以返回到主页。
若要将应用程序注册到 ACS,请单击 “信赖方应用程序”,单击“ 添加”,然后在窗体中输入以下信息:
在“名称”字段中,输入 ASPNET Simple Forms Sample。
在 “领域” 字段中,输入 https://localhost:62000/
在 “返回 URL ”字段中,输入 https://localhost:62000/
从“令牌格式”下拉列表框中选择 SAML 2.0。
在“标识提供者”部分中,选择 Google、Windows Live ID 和 Yahoo!
在“令牌签名”字段中,选择“使用服务命名空间证书(标准)”。
让其他字段保留其默认值。
单击“保存”,然后导航到主页。
注册信赖方应用程序后,现在可以创建确定 ACS 向应用程序发出的声明的规则。 在此示例中,我们将只传递标识提供程序发出的所有声明。 若要创建此规则,请单击“规则组”,然后单击“用于 ASPNET 简单窗体示例的默认规则组”。 在页面底部,单击“生成”链接。 确保三个标识提供者 Yahoo!、 Google 处于选中状态,然后单击“ 生成”。 最后,单击“保存”并导航回主页。
配置 ACS 后,打开Visual Studio。
选项 2:使用 ACS 管理服务配置示例
使用 ACS 管理服务配置示例
若要配置本示例,请打开 SamplesConfiguration.cs (acs\Management\ManagementService\Common)。 将 Common 类库中 SamplesConfiguration 类中的占位符替换为有关访问控制命名空间的信息。 可以在 ACS 管理门户中找到信息。
若要导航到 ACS 管理门户:请转到Microsoft Azure管理门户 () https://manage.WindowsAzure.com 登录,然后单击“Active Directory”。 (故障排除提示:“Active Directory”项缺失或不可用) 若要管理访问控制命名空间,请选择命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)
ServiceNamespace - 输入访问控制命名空间的名称。
ManagementServiceIdentityName - 输入 ACS 管理服务帐户的名称。 默认值为 ManagementClient。
若要查找管理服务帐户名称,请在 ACS 管理门户中单击 “管理服务”。 帐户已按名称列在“管理服务帐户”下面。
ManagementServiceIdentityKey - 输入与管理服务帐户关联的密码。
若要查找管理服务帐户密码,请在 ACS 管理门户中单击 “管理服务”。 单击管理服务帐户的名称,然后在“凭据”下面单击“密码”。 密码将显示在“密码”字段中。 若要复制密码,请单击“显示密码”。
在 Visual Studio中运行 ConfigureSample 应用程序,它将配置 ACS 以运行此示例。
运行示例
运行示例
在 Visual Studio 中打开位于 Websites\ASPNETSimpleForms\ASPNETSimpleForms.sln 的示例。
按 F5 启动该应用程序。
关闭浏览器以停止应用程序。
右键单击该项目,然后从上下文菜单中选择“添加 STS 引用”。
在对话框中,将 Web 应用程序的根路径输入到“应用程序 URI”字段中,然后单击“下一步”。 对于此示例,此值为 https://localhost:62000/
注意
尾部斜杠很重要,因为它与在 ACS 中输入的值一起排队供信赖方使用。 如果站点未使用 SSL,此向导将发出警告。 单击“是”按钮接受此警告,但请记住,对于这些类型的方案,产品网站几乎始终应使用 SSL。
在下一个窗口中,选择“使用现有 STS”单选按钮,并输入由访问控制命名空间发布的WS-Federation元数据的 URI。 可以在门户中“应用程序集成”下找到该 URI。 如果访问控制命名空间为 acssamples,则 URI https://acssamples. accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml。 在输入值后,单击“下一步”。
由于你的网站不需要加密的令牌,请在其余对话框上单击“下一步”,然后单击“完成”。
ACS 和应用程序现已配置。 按 Visual Studio 中的 F5 运行应用程序。 浏览器将转到 ACS 托管的主领域发现页面。
单击 Yahoo! 或 Google,你的浏览器将转到该标识提供程序。
你的浏览器转到标识提供程序后,输入测试帐户的凭据并接受用户许可窗体中的条款。
浏览器应返回到 https://localhost:62000/。 请注意,测试标识名称将显示在该页右上角区域。 此数据由标识提供者颁发,并通过 ACS 返回到应用程序。