如何自定义 UI 元素

网页使用网页上定义的元数据标记自定义用户界面 (UI) 标题、图标和标题颜色。 Web 开发人员可以使用 HTML <元> 标记在 Web 身份验证代理 UI 中显示提供程序的个性和品牌。 此外,开发人员还可以指导更复杂的用户操作,例如注册和恢复密码。 该概念与 Windows Internet Explorer 9 和 Windows 7 的固定网站功能非常相似。

除了自定义网页区域周围的用户界面外,网页还应利用Windows 8控件的样式,启用触摸,并在适当的情况下允许在浏览器中打开链接。

下面是利用 Web 身份验证代理自定义模型的网页示例。 Web 身份验证代理用户界面元素

Instructions

步骤 1:自定义图标

网页可以使用 mswebdialog-logo 元标记提供图标。

<meta name="mswebdialog-logo" content="https://www.contoso.com/logo.png"/>

内容是一个 URL,可以是相对页面或绝对页面。 URL 的方案可以是 HTTP 或 HTTPS。 文件的格式应为 PNG 或 JPG。 图像的大小应为 30x30 像素。 如果映像大小不同,则操作系统将纵向缩减或增加该映像以适应 30x30 空间。 图像应设计为在缩放到 140% 和 180% 时呈现良好,以考虑更高分辨率的屏幕。 若要测试不同的缩放因子,请使用 Visual Studio 11 中加载的 Web 身份验证代理 SDK 示例应用 ,该应用允许使用设计模式的设备窗口模拟不同的分辨率和缩放因子。

步骤 2:自定义标题文本

网页可以使用 mswebdialog-title 元标记提供标题。

<meta name="mswebdialog-title" content="Contoso Social"/>

标题应简短,并应反映提供商的品牌 (例如 Contoso) 。

步骤 3:自定义标题颜色

网页可以使用 mswebdialog-header-color 元标记提供表示要用于对话框标头的品牌标识的颜色。

<meta name="mswebdialog-header-color" content="#1267DF"/>

颜色可以是此处指定的任何值。 但是,Web 身份验证代理将忽略任何 alpha 通道值。 对于此颜色,以及页面上通常使用的颜色,建议遵循提供程序的 Windows 8 应用中使用的相同颜色(如果此类应用存在)。

注意

分析 META 标记后,客户端上的每个服务器将缓存图标和颜色。 在启动 UI 之前清除客户端缓存,以使更改生效。 为此,请修改以下注册表设置。

 

// Registry location under HKLM used for setting various AuthHost parameters.
#define AUTH_HOST_LOCAL_MACHINE_REGPATH \
    L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\authhost.exe"
// MaxAge to use for downloading logo images
#define AUTH_HOST_LOGO_IMAGE_MAX_AGE_SECONDS_REG_VALUE_NAME \
    L"LogoImageMaxAgeSeconds"
// 24 hours
#define AUTH_HOST_LOGO_IMAGE_MAX_AGE_SECONDS_DEFAULT        \
    (24 * 60 * 60)

下载图标后,24 小时内不会再次拾取该图标。 若要使用徽标图像进行测试,请使用较低的值设置上面的 reg 键。

步骤 4:自定义网页

除了自定义网页周围的 UI 外,开发人员还应创建与整体Windows 8体验无缝集成的网页。 这包括使用推荐的样式、确保网页在支持触摸的设备下正常工作,以及打开 Web 浏览器中的某些网页。

  • 样式

    强烈建议使用此处建议的样式,跨 Web 身份验证代理网页和 Windows 8 的其他 UI 组件创建更一致的用户体验。 网页应使用白色背景且无边框。 “登录”或“取消”等按钮应位于右下角,并使用与标题相同的颜色。 最后,由于 Web 身份验证代理提供“后退”按钮,请考虑完全取消网页中的“取消”按钮。

  • 启用触摸

    网页的设计应考虑到基于触摸的用户交互。 有关在 Windows 8 中设计触摸的详细信息,请参阅触摸交互设计主题。

  • 自定义超链接的目标

    Web 身份验证代理非常适合用于传送需要单个用户操作的网页,例如登录或 OAuth 授权页。 但是,对于更复杂的用户流(例如帐户创建、从丢失或忘记的密码中恢复、显示隐私声明等),用户需要花费一些时间来理解和完成流,建议在用户的首选浏览器中启动这些页面,以支持完全导航和访问浏览。 默认情况下,Web 身份验证代理不允许从网页打开新的浏览器窗口 (请参阅“默认情况下无新窗口”部分,了解) 的更多详细信息。 但是,通过使用元标记 mswebdialog-newwindowurl ,网页可以声明应在浏览器中打开的 URL。

    mswebdialog-newwindowurl允许网页指定一个 URL 或 URL 的一部分,Web 身份验证代理将使用该 URL 来匹配 (左侧字符串匹配) ,每次要求它使用目标属性或 window.open () 方法在新窗口中打开 URL 时。 如果存在匹配项,则会在用户的默认浏览器中打开 URL。 如果没有匹配项,Web 身份验证代理将导航到 URL 本身, (默认行为) 。 例如:<meta name="mswebdialog-newwindowurl" content="https://www.contoso.com/privacy"/>

    对于此元标记,Web 身份验证代理将在浏览器中打开 https://www.contoso.com/privacy/policy.html ,但会直接导航到 https://www.contoso.com/termsofuse.html。 请注意,未尝试在新窗口中打开的链接 (例如,未使用目标属性或 window.open () 方法) 的链接不受此元标记的影响。 内容是一个 URL,可以是相对页面或绝对页面。 URL 的方案可以是 HTTP 或 HTTPS。 应定义 mswebdialog-newwindowurl 元标记以涵盖不属于核心用户流的任何链接,例如隐私声明、注册表单等。 如果支持使用第三方身份验证提供程序登录, (例如 OpenID 提供程序) ,请确保将这些交互保留在 Web 身份验证代理中。 若要使页面上的所有链接都可以安全地在浏览器中打开,请使用star语法,例如, <meta name="mswebdialog-newwindowurl" content="*"/>请注意,“*”只能以独占方式使用,不能与其他 URL 组合使用,例如,“https://www.contoso.com/*”不是有效的语法。

步骤 5:应用于所有元标记的规则

当 Web 身份验证代理处理元标记时,以下规则适用:

  • 例如,元标记的效果将持续到同一二级域 (下的所有页面中,contoso.com) 除非遇到另一个同名但内容不同的元标记。

  • 如果在同一页上遇到多个同名的元标记,Web 身份验证代理将仅选择其中一个标记,并忽略其余标记。 未定义所选的特定元标记。

    注意

    此规则不适用于 mswebdialog-newwindowurl 允许在同一页上使用多个实例的元标记。

     

网页开发注意事项

Web 身份验证代理 SDK 示例应用

Windows.Security.Authentication.Web