我有一个托管在外部Web服务器上的ASP.NET页面,该服务器嵌入在CRM Online中的联系表单中的iFrame中 . 截至目前,iFrame中显示的页面可供整个网站访问,但我想限制只对通过CRM Online / Office 365进行身份验证的用户的访问权限 . 有没有办法让我以编程方式检查是否用户是否通过我的外部应用程序对CRM Online / Office 365进行了身份验证?我对在我的iFrame中实现/验证用户不感兴趣,而是我只想看看他们是否有有效的登录会话,如果是,则显示页面,如果没有,则隐藏它 . 任何反馈或方向将非常感激 .
1 回答
在这种情况下,它可能最容易做到以下几点:
设置您的网页以捕获用户身份验证详细信息 - 您需要这样做以识别用户是谁 . 这在很大程度上取决于您使用的身份验证方法 . 例如,使用Windows身份验证,您可以获得用户域名,即
MyDomain\james.wood
.然后通过Web服务查询CRM以检查该用户(例如,基于域名)是否具有具有安全角色或特定权限的系统用户 .
这样您就不必担心看到它们是否实际登录到CRM . 您只需检查用户是否可以访问CRM中的数据 . 您可以考虑添加其他检查,以便在CRM iframe外部打开网页时,您不会显示网页内容 . 此外,您可以进一步模拟用户对CRM的任何Web服务调用 .
您可能会发现以下内容很有用 .
Authenticate users in Microsoft Dynamics CRM .
Sample: Determine whether a user has a role .
Impersonate another user .
编辑
或者,您可以查看实施单点登录 .
Implement single sign-on from an ASPX webpage or IFRAME .