【问题标题】:Webview2, SharePoint Online, and Azure AD AutheticationWebview2、SharePoint Online 和 Azure AD 身份验证
【发布时间】:2021-10-15 04:43:47
【问题描述】:

我有一个使用 WebView2 控件的 WPF 桌面,它运行良好。我要解决的问题是为在 WebView2 控件中访问我们的 SharePoint Online (SPO) 网站时发现重复提示的用户处理身份验证烦人。我不想访问 Graph API 或 SPO API,只是允许用户在没有登录提示的情况下导航到我们的 SPO 站点。我们的本地 AD 与 Azure AD 同步。

我开发的几个应用程序:

  • 一个使用 SSO 的 Office 加载项,具有委派权限并由我们的管理员签名,这样用户就不会登录

  • 一个具有应用程序权限的控制台应用程序,可以通过 EWS API 更新我们组织中的所有日历,受 Azure AD 证书授权保护,尽管它最初使用了一个秘密

也就是说,我如何设置应用授权,以便我的桌面 WPF 应用可以允许用户在没有提示的情况下访问 SPO?

【问题讨论】:

    标签: wpf azure azure-active-directory sharepoint-online


    【解决方案1】:

    根据您的场景,您可以在 Web 视图控件中尝试以下操作,这样您将不再收到 Sharepoint 在线登录的身份验证提示。

    • 您试图在 Web 视图控件中访问 SPO 站点,因此您需要允许对 http 客户端进行身份验证,即 Windows 商店客户端(经典)[System.Net.Http.HttpClient] 和 HTTP 客户端[Windows. Web.Http.HttpClient] 连接到 Web 视图控件。您可以通过在您的代码中添加新的来做到这一点,如下所示:-

      var filter = new HttpBaseProtocolFilter();
      filter.ServerCredential = new   Windows.Security.Credentials.PasswordCredential("http://website","login","password");
            Windows.Web.Http.HttpClient client2 = new 
            Windows.Web.Http.HttpClient(filter);
            var response = await client2.GetAsync(new Uri("http://website"));
            WebView.Source = new Uri("http://website");
    

    • 在此代码中,将“登录名”和“密码”更改为您要用于登录 SPO 站点的凭据。此外,将“http://website”更改为 SPO 网站并将“enterpriseAuthentication”参数设置为关闭。

    • 此外,您可以使用“TodoListService”服务应用程序为每个经过身份验证的用户维护一个内存中的待办事项集合,以用于登录目的。

    请参考以下链接以获取更多参考:-

    providing domain/user credentials to webview control

    https://docs.microsoft.com/en-us/previous-versions/windows/hh465283(v=win.10)?redirectedfrom=MSDN

    https://docs.microsoft.com/en-us/samples/azure-samples/active-directory-dotnet-native-aspnetcore-v2/1-desktop-app-calls-web-api/

    这样,希望可以通过桌面 WPF 应用程序访问 SPO 站点而无需身份验证提示。

    谢谢你,

    【讨论】:

    • 使用密码是不可能的。对 Graoh 或 EWS API 的 API 访问是我之前用几个应用程序做过的事情,但这并不相关。用户需要访问网站,而不是让我在后台访问代码 API。
    • 再想一想,使用具有有限权限的服务帐户来访问该站点也许不是一个坏主意。他们会在需要的地方使用凭证,但使用帐户阅读 SharePoint Online 网站上的文档等微不足道的事情。
    猜你喜欢
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2021-05-16
    • 2017-12-15
    • 2019-06-25
    相关资源
    最近更新 更多