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 に答える