0

MVC Web サイトで基本認証をセットアップActionFilterAttributeして、開発中にロックダウンしました。これは、テストしているすべてのブラウザー (IE9+、Chrome、FF、iOS Safari) で 100% 動作しますが、Android で Chrome をロードすると4.0 では、単に 401 アクセスが拒否されたと表示され、基本認証資格情報を要求されることはありませんか?

これはOnAuthorizationメソッドの私のコードです:

    public void OnAuthorization(AuthorizationContext filterContext)
    {
        var controllerName = (filterContext.RouteData.Values["controller"] as string).ToLower();
        if (_controllersToIgnore.Contains(controllerName))
        {
            return;
        }

        bool credentialsMatch = false;
        var req = filterContext.HttpContext.Request;
        if (!string.IsNullOrEmpty(req.Headers["Authorization"]))
        {
            var cred = System.Text.Encoding.ASCII.GetString(Convert.FromBase64String(req.Headers["Authorization"].Substring(6))).Split(':');
            var user = new { Name = cred[0], Pass = cred[1] };
            if (user.Name == Username && user.Pass == Password)
            {
                credentialsMatch = true;
            }
        }
        if (!credentialsMatch)
        {
            var res = filterContext.HttpContext.Response;
            res.StatusCode = 401;
            res.AddHeader("WWW-Authenticate", "Basic realm=\"\"");
            res.End();
            filterContext.Result = new EmptyResult();
        }
    }
4

1 に答える 1

0

この問題は不思議なことに自然に消えました。私は何もしませんでした (明らかに)。

于 2013-07-31T06:01:53.653 に答える