我可能不理解的东西,但我有以下问题:
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控制器太多,但它似乎没有。
这是预期的行为? 或者我做错了什么?
我的最终目标是有一个挑战/响应基本身份验证框浏览器提示。
由于这次提交您能够覆盖默认行为时的身份验证失败:
[Authenticate]
public class HomeController : ServiceStackController
{
public override ActionResult AuthenticationErrorResult
{
get
{
//return 401 Unauthorized for example
return new HttpStatusCodeResult(401);
}
}
}
ServiceStackController.AuthorizationErrorResult
可以以同样的方式进行修改。
设置HtmlRedirect
到null
并不在这种情况下工作,因为该行为[Authenticate]
与ASP.net MVC控制器,而不是ServiceStack服务时使用的属性(和所有其他ServiceStack属性)略有不同。
我一直在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