ServiceStack基本身份验证HtmlRedirect不受MVC ServiceStackCo

2019-10-17 22:02发布

我可能不理解的东西,但我有以下问题:

AppHost.cs

Plugins.Add(new AuthFeature(
            () => new AuthUserSession(),
            new IAuthProvider[] { new BasicAuthProvider() }) { HtmlRedirect = null });

HomeController.cs

[Authenticate]
public class HomeController : ServiceStackController

问题

问题是,当我尝试访问HomeController的,我重定向到~/login?redirect=....

我会假设,通过设置HtmlRedirect为空,也将影响到MVC控制器太多,但它似乎没有。

这是预期的行为? 或者我做错了什么?

我的最终目标是有一个挑战/响应基本身份验证框浏览器提示。

Answer 1:

由于这次提交您能够覆盖默认行为时的身份验证失败:

[Authenticate]
public class HomeController : ServiceStackController
{
    public override ActionResult AuthenticationErrorResult
    {
        get
        {
            //return 401 Unauthorized for example
            return new HttpStatusCodeResult(401);
        }
    }
}

ServiceStackController.AuthorizationErrorResult可以以同样的方式进行修改。

设置HtmlRedirectnull并不在这种情况下工作,因为该行为[Authenticate]与ASP.net MVC控制器,而不是ServiceStack服务时使用的属性(和所有其他ServiceStack属性)略有不同。



Answer 2:

我一直在ServiceStack Jabbr聊天页面,被告知,这是一个错误,修复将在今天放!

https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.FluentValidation.Mvc3/Mvc/ExecuteServiceStackFiltersAttribute.cs#L25



文章来源: ServiceStack Basic Authentication HtmlRedirect is not respected by MVC ServiceStackController