发布日期: 2016年11月
适用于: Dynamics CRM 2015
Microsoft 帐户 允许在您的网站上对用户进行身份验证,而无需创建您自己的安全提供程序。 本主题介绍如何通过 Microsoft 帐户 开发人员扩展和门户工具包对您的网站使用 Microsoft Dynamics CRM 2015 身份验证。
本主题内容
使用 Microsoft 帐户注册您的的网站
添加 LiveIdLoginStatus 控件
添加成员资格提供程序和处理程序服务
强制注册
使用 Microsoft 帐户注册您的的网站
开始之前,需要使用 Microsoft 帐户 注册您的网站:
https://account.live.com/developers/applications
注册网站时,需要提供完整的域名,例如,要提供“yoursite.yourdomain.com”而不是“yourdomain.com”。
还需要提供一个 URL 将 Microsoft 帐户 请求定向回其完成登录时的状态。 这会定向到您的处理程序服务,您可在本文档的后面部分了解该服务,但默认情况下,要输入的 URL 为:
http://yoursite.yourdomain.com/liveid.axd.
在注册网站后,它为您提供一个应用程序 ID 和一个将用于插入 web.config 中的密钥,以便该网站可以挂接到 Microsoft 帐户。
以下是一些注意事项:
您的域名不能包括诸如 localhost 或 127.0.0.1 之类的字符串,或其中包含“live”一词的任何内容。
您不能与其他用户共享网站管理。
注册域名后无法更改域名。
添加 LiveIdLoginStatus 控件
最后一步是添加 LiveIdLoginStatus 控件,其工作方式与 LoginStatus 控件一样。 它为未经过身份验证的用户显示登录链接,为已经过身份验证的用户显示注销链接。
如果是匿名访问,该链接会使用户转到 Windows Live,或者(使用 Loginhref)转到指定的登陆页面,并告知用户他们要转到 Windows Live。
在经过身份验证后,注销链接会将当前用户的标识重置为匿名用户。
<crm:LiveIdLoginStatus runat="server" />
此处假定已将“crm”标记前缀注册到了“Microsoft.Xrm.Portal.Web.UI.WebControls”当中。
添加成员资格提供程序和处理程序服务
成员资格提供程序处理用户登录信息。 使用 Microsoft 帐户 需要使用 Microsoft 帐户 成员资格提供程序:
<membership defaultProvider="CrmMembershipProvider">
<providers>
<add name="CrmMembershipProvider" type="Microsoft.Xrm.Portal.Web.Security.LiveIdMembershipProvider, Microsoft.Xrm.Portal" liveIdConnectionStringName="Live"/>
</providers>
</membership>
处理程序服务验证是否已在网站上注册经过身份验证的用户。 如果您是在集成模式下运行 Internet Information Services (IIS) 7 网站,则需要确保在 <handlers> 部分添加了以下内容:
<add name="LiveId" verb="*" path="LiveID.axd" preCondition="integratedMode" type="Microsoft.Xrm.Portal.Web.Handlers.LiveIdWebAuthenticationHandler, Microsoft.Xrm.Portal" />
如果是在经典管道模式或 IIS6 中运行,将在 Web.config 文件的 <httpHandlers> 部分配置处理程序服务。
<add verb="*" path="LiveID.axd" type="Microsoft.Xrm.Portal.Web.Handlers.LiveIdWebAuthenticationHandler, Microsoft.Xrm.Portal"/>
强制注册
在使用 Microsoft 帐户 进行身份验证时,仅密码唯一标识符 (PUID) 是已知的。 如果需要有关用户的其他信息(例如显示名称或电子邮件),将需要从用户那里收集此信息。 执行此操作的方法有两种:
设置一个页面,供他们在登录后的某个方便时候填写其信息。
先收集信息,然后在您的网站上对其进行身份验证。
要采用第二种方法,您的 Microsoft 帐户 设置将需要一些特殊处理。
在用户注册过程中,Microsoft Dynamics 365 需要知道用户的 PUID,以便可以将其链接到用户的 Microsoft Dynamics 365 联系信息。 换句话说,您需要让用户使用 Microsoft 帐户 登录,然后将用户发送到您的注册页。 这可以通过在 RegistrationUrl 控件上添加 LiveIdLoginStatus 属性来完成。
<crm:LiveIdLoginStatus runat="server" RegistrationUrl="/CreateUser" />在注册页后面的代码中,您需要添加代码来保留 Microsoft 帐户 令牌并在收集完所需信息后创建新用户。
protected void Page_Load(object sender, EventArgs e) { if (InvitationCode == null || InvitedContact == null) { var page = SiteContext.Current.Website.GetPageBySiteMarkerName("Home"); Response.Redirect(page.GetUrl()); } // Add the Live ID variables that come from the authentication handler to hidden // script variables. if (Request["live-id-action"] == "register") { Page.ClientScript.RegisterHiddenField("live-id-token", Request["live-id- token"]); Page.ClientScript.RegisterHiddenField("live-id-action", Request["live-id-action"]); } }
另请参阅
Microsoft Dynamics CRM 2015 门户开发人员指南
准备进行门户开发 (Dynamics CRM 2015)
ASP.NET Web 窗体和数据绑定
管理门户内容 (Dynamics CRM 2015)
Dynamics CRM 2015 的门户演练
© 2017 Microsoft。 保留所有权利。 版权