Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式检查用户是否已通过Office 365/CRM Online身份验证_C#_Asp.net_Office365_Microsoft Dynamics_Dynamics Crm Online - Fatal编程技术网

C# 以编程方式检查用户是否已通过Office 365/CRM Online身份验证

C# 以编程方式检查用户是否已通过Office 365/CRM Online身份验证,c#,asp.net,office365,microsoft-dynamics,dynamics-crm-online,C#,Asp.net,Office365,Microsoft Dynamics,Dynamics Crm Online,我有一个ASP.NET页面托管在一个外部web服务器上,该服务器嵌入在CRM Online中联系人表单的iFrame中。目前为止,iFrame中显示的页面可供整个web访问,但我想将访问权限限制为只有通过CRM Online/Office 365身份验证的用户。是否有一种方法可以让我以编程方式检查用户是否通过外部应用程序的CRM Online/Office 365身份验证?我对在iFrame中实现/验证用户不感兴趣,而是想看看他们是否有有效的登录会话,如果有,显示页面,如果没有,隐藏页面。任何反

我有一个ASP.NET页面托管在一个外部web服务器上,该服务器嵌入在CRM Online中联系人表单的iFrame中。目前为止,iFrame中显示的页面可供整个web访问,但我想将访问权限限制为只有通过CRM Online/Office 365身份验证的用户。是否有一种方法可以让我以编程方式检查用户是否通过外部应用程序的CRM Online/Office 365身份验证?我对在iFrame中实现/验证用户不感兴趣,而是想看看他们是否有有效的登录会话,如果有,显示页面,如果没有,隐藏页面。任何反馈或指导都将不胜感激。

在这种情况下,可能最容易做到以下几点:

  • 设置您的网页以捕获用户身份验证详细信息-您需要这样做以识别用户是谁。这在很大程度上取决于您使用的身份验证方法。例如,通过Windows身份验证,您可以获取用户域名,即
    MyDomain\james.wood

  • 然后通过web服务查询CRM,以检查该用户(例如基于域名)是否具有具有安全角色或特定权限的系统用户

  • 这样你就不必担心他们是否真的登录了CRM。您只需检查用户是否可以访问CRM中的数据。您可以考虑添加其他检查,这样,如果在CRM iframe之外打开网页,就不会显示网页内容。此外,您还可以更进一步,在对CRM的任何web服务调用中模拟用户

    您可能会发现以下内容很有用


    编辑

    或者,您可以考虑实现单点登录


    .

    在这种情况下,可能最容易执行以下操作:

  • 设置您的网页以捕获用户身份验证详细信息-您需要这样做以识别用户是谁。这在很大程度上取决于您使用的身份验证方法。例如,通过Windows身份验证,您可以获取用户域名,即
    MyDomain\james.wood

  • 然后通过web服务查询CRM,以检查该用户(例如基于域名)是否具有具有安全角色或特定权限的系统用户

  • 这样你就不必担心他们是否真的登录了CRM。您只需检查用户是否可以访问CRM中的数据。您可以考虑添加其他检查,这样,如果在CRM iframe之外打开网页,就不会显示网页内容。此外,您还可以更进一步,在对CRM的任何web服务调用中模拟用户

    您可能会发现以下内容很有用


    编辑

    或者,您可以考虑实现单点登录


    .

    也许SAML能做到?也许SAML能做到?谢谢你的回复。我已经能够提示提供凭据并验证CRM Web服务的身份验证。但是,我们希望避免重新提示输入凭据,而是使用现有的CRM Online/Office 365登录会话/“令牌”,因为用户已通过身份验证。我不确定是否有办法将会话“传递”到在iFrame中运行的应用程序中,或者从iFrame向令牌端点进行某种调用,以确定用户是否经过身份验证。也许我们甚至可以从浏览器上读到一块饼干?@JoshMorton,我想你想要单点登录,看看我的编辑我猜你是底部的链接也是我问题的答案@Daryl,可能-不是我自己用那种方式做的-我只是知道这篇文章,我已经为其他人对你的问题添加了一个答案。谢谢你的回复。我已经能够提示提供凭据并验证CRM Web服务的身份验证。但是,我们希望避免重新提示输入凭据,而是使用现有的CRM Online/Office 365登录会话/“令牌”,因为用户已通过身份验证。我不确定是否有办法将会话“传递”到在iFrame中运行的应用程序中,或者从iFrame向令牌端点进行某种调用,以确定用户是否经过身份验证。也许我们甚至可以从浏览器上读到一块饼干?@JoshMorton,我想你想要单点登录,看看我的编辑我猜你是底部的链接也是我问题的答案@Daryl,可能-不是我自己用那种方式做的-我只是知道这篇文章,我已经为其他人添加了你问题的答案。