1

私はおそらく何かを理解していませんが、以下の問題があります:

AppHost.cs

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

HomeController.cs

[Authenticate]
public class HomeController : ServiceStackController

問題

問題は、HomeControllerにアクセスしようとすると、にリダイレクトされること~/login?redirect=....です。

nullに設定HtmlRedirectすると、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]、ServiceStackサービスの代わりにASP.net MVCコントローラーで使用した場合の属性(および他のすべての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 に答える