0

この質問に従って、ServiceStack 認証サービスのリダイレクト URL を変更する方法があります。

ServiceStackController<AuthUserService>ただし、 ServiceStackController がリダイレクト URL をハードコードし、AuthFeature登録時にこれを変更しても影響がないため、これからコントローラーを継承する場合は明らかに機能しません。

私の質問は次のとおりです。

1) この問題を回避する正しい方法は何ですか?

オーバーライドするオプションがありますがLoginRedirectUrl、これですか? Authenticate 属性のHtmlRedirectプロパティまたは AuthFeature のプロパティのポイントは何ですか?

2) そしてServiceStackController全体の目的は何ですか?

3)[Authenticate]ベース コントローラを装着しましたが、アカウント コントローラのアクションに設定した属性が属性[Authenticate]を無視しているようです。[AllowAnonymous]Login

[AllowAnonymous]これら 2 つはSystem.Web から完全に分離されていることは知っていますが、ServiceStack に「許可」属性はありますか?

4

2 に答える 2

2

ASP.NET MVC アプリケーションと一緒に ServcieStack を使用していると仮定しています...

1) この問題を回避する正しい方法は何ですか?

ServiceStackController から継承する MVC コントローラーで、リダイレクトを処理するためにこれを追加しました。

public override ActionResult AuthenticationErrorResult
{
    get
    {
        if (this.AuthSession == null || this.AuthSession.IsAuthenticated == false)
        {
            return Redirect("~/Home/Login");
        }
        return base.AuthenticationErrorResult;
    }
}

Authenticate 属性の HtmlRedirect プロパティまたは AuthFeature のプロパティのポイントは何ですか。MVC コントローラーにリクエストを送信しない場合 (つまり、ServiceStack のカスタムパスが「/api」であると仮定して、/api/foo を呼び出します) は期待どおりに機能すると
確信しています。HtmlRedirectMVC の「リターンのハイジャック」にはいくつかの問題があると思います。

2) ServiceStackController の目的は何ですか?
私の理解では、その主な目的は、ServiceStack と MVC の間でセッション データを共有することです。

ServiceStackに「許可」属性はありますか?
私が知っているわけではありませんが、Authenticate は単なるフィルターであるため、おそらくそのサブクラスを作成して、「許可」のサポートを追加することができます。

于 2013-05-06T19:02:11.593 に答える