1

我可能不明白,但我有以下问题:

应用主机.cs

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

家庭控制器.cs

[Authenticate]
public class HomeController : ServiceStackController

问题

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

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

这是预期的行为吗?还是我做错了什么?

我的最终目标是让浏览器提示带有质询/响应基本身份验证框。

4

2 回答 2

3

由于此提交,您可以在身份验证失败时覆盖默认行为:

[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 属性)的行为略有不同。

于 2013-03-27T15:28:32.560 回答
1

我在ServiceStackJabbr 聊天页面上被告知这是一个错误,今天将进行修复!

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

于 2013-03-27T12:39:01.763 回答