4

WebView コントロールに資格情報を提供する方法を知っている人はいますか (または、さらに良い - 特定のドメイン ユーザーのコンテキストで Windows 8 Metro スタイル アプリケーション/WinRT アプリを実行しますか?) ここにリストされている HttpClient + WebView アプローチに従ってみました ( http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/05e46a0a-e913-469d-a4a5-4a805dcf158a) ただし、返されたコンテンツには次へのリンクがあるため、ユーザーに資格情報の入力を求めます。確保アイテム。

私は NetworkCredential オブジェクトを持っており、作成されるすべての HTTP 呼び出しにそれを適用したいと考えています。

きっと誰かがこれを以前にやったに違いない?:)

4

2 に答える 2

5

企業ネットワーク上のサイトに接続するには、 Package.appxmanifestでprivateNetworkClientServer機能を有効にする必要があります。これは XML で行うことも、Visual Studio でファイルをダブルクリックしてデザイナー (機能タブ) を使用することもできます。UI では、「ホーム ネットワークまたは職場ネットワーク」と呼ばれます。

イントラネットにアクセスできるようになったので、サイトに移動できますが、資格情報を提供するよう求められます。ユーザーのドメイン ID を自動的に提供する (エンタープライズ シングル サインオン) 場合は、enterpriseAuthentication機能も有効にする必要があります。これは、マニフェスト UI では「エンタープライズ認証」と呼ばれます。

そこから、WebView を使用して任意のイントラネット サイトを参照でき、認証する必要はありません。WebView の外部で何かをしようとしている場合は、次の記事とサンプルを確認してください。

WebAuthenticationBroker の使用:

http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122

WebAuthenticationBroker にはUseCorporateNetworkというオプションがあります。上記のサンプルに従うときは、必ずそれを使用してください。

最後に、Facebook や Flicr などの他のサイトでシングル サインオンを行いたい場合は、次のサンプルを参照してください。

http://msdn.microsoft.com/en-US/library/windows/apps/xaml/Hh465283

于 2012-08-01T22:02:57.630 に答える
1

私は同じ問題に遭遇しましたが、幸運にも答えを見つけました:)ここでの主な問題は、Windowsストアアプリケーションに2つの異なるHttpClientが含まれていることです

そのうちの 1 つは、C# アプリから知られている「クラシック」であり (自動的に使用されます)、もう 1 つは「新しい」HttpClient であり、WebView に接続されています :)

以下は両方のタイプです: System.Net.Http.HttpClient (従来のもの) Windows.Web.Http.HttpClient (新しいもの)

したがって、新しい One を宣言し、以下のコードのようなことを行うことを忘れないでください

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");

ここで、ログインとパスワードを使用する資格情報に変更することを忘れないでください。Web サイトは、認証するサイトです。

サーバーからの応答を取得することが重要です。これにより、ユーザーはサーバーで認証されるため、次に webView を使用してそのサイトにアクセスすると、認証されます。

基本認証とNTLM認証で正常に動作します

このシナリオでは、enterpriseAuthentication をオフにすることを忘れないでください

この問題の解決策を探している人々に役立つことを願っています:)

于 2015-10-17T13:02:37.007 に答える