1

当我设置身份验证功能重定向属性时,当我访问安全页面时它不会被应用。例如,我将身份验证功能设置为重定向以使用自定义登录页面。

authFeature.HtmlRedirect = "http://localhost/SimpleService/login";

但是,如果我使用安全控制器,则永远不会应用此重定向,它始终使用服务堆栈默认值"/login"。它使用的重定向甚至不包括 SimpleService 的原始站点名称。下面的示例控制器。

[Authenticate]
public class PrivateController : ControllerBase
{
    public ViewResult SecurePage()
    {
        return View();
    }
}

我还尝试覆盖 Authenticate 属性上的重定向,但无济于事。有没有人知道我可能做错了什么?

[Authenticate(HtmlRedirect = "http://localhost/SimpleService/login")]
public class PrivateController : ControllerBase
{
    public ViewResult SecurePage()
    {
        return View();
    }
}
4

1 回答 1

7

我遇到了与上面相同的问题。我发现的一种解决方法是覆盖基本控制器中的 LoginRedirectUrl。这对我有用。

例如

public override string LoginRedirectUrl
{
    get
    {
        return "/Account/Login?redirect={0}";
    }
}
于 2013-02-27T10:41:11.330 回答