如何验证OnReceivedHttpAuthRequest中的用户名/密码?

时间:2019-02-25 17:41:20

标签: android xamarin webview android-webview

我正在尝试存储Windows凭据以登录到Web视图中的Intranet Web应用程序。

var login = Application.Context.GetSharedPreferences("Login", FileCreationMode.Private);
string username = login.GetString("username", null);
string password = login.GetString("password", null);

if (username != null && password != null)
    handler.Proceed(username, password);

但是,如果密码错误,它将继续尝试直到帐户被锁定。如何检查Proceed是否成功,以便重新提示用户输入新的凭据。

2 个答案:

答案 0 :(得分:1)

这是我的建议

int requestCount;
public override void OnReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, string host, string realm)
     {
         requestCount++;
         if(requestCount <3)
           {
             handler.Proceed(username, password);
           }
          else
           {
             //show a Dialog(with two edittext for input username and password) which notice credentials failure and reprompt the user to enter in new credentials
             //when you click Dialog's "Ok" reset requestCount to 0 and call "handler.Proceed(newUsername, newPassword);" 
             //when you click Dialog's "Cancel" call "handler.Cancel();"
           }
    }

答案 1 :(得分:0)

问题是保存了错误的密码。

  1. 从无用户名/密码开始
  2. 用户输入用户名/密码后,进行检查。如果正确 保存它,如果没有重新开始。
  3. 稍后,当需要用户名/密码时,先获取它,然后进行检查。
  4. 如果它能正常工作并记录下来,那么我们就完成了。
  5. 如果无法正常工作,请清除商店,然后重新开始