【问题标题】:ASP.NET MVC Basic Authentication with Android 4.0 Chrome使用 Android 4.0 Chrome 的 ASP.NET MVC 基本身份验证
【发布时间】:2013-06-03 22:56:27
【问题描述】:

我已经在我的 MVC 网站中设置了基本身份验证 ActionFilterAttribute 以在开发过程中将其锁定,它在我正在测试的所有浏览器(IE9+、Chrome、FF、iOS Safari)上 100% 有效,但是当我在 Android 4.0 中加载 Chrome,它只是显示 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();
        }
    }

【问题讨论】:

    标签: c# android asp.net-mvc basic-authentication


    【解决方案1】:

    这个问题很奇怪地自行消失了,我什么也没做(显然),它就停止发生了。

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 2011-08-17
      • 2013-05-16
      • 2014-02-05
      • 2014-07-05
      • 2016-03-07
      • 2019-01-28
      • 1970-01-01
      • 2010-09-24
      相关资源
      最近更新 更多