ServiceStack + Razor + Auth + Fluent验证

时间:2017-10-27 14:39:32

标签: razor servicestack

我正在使用内置的SS Razor,Auth和Fluent验证构建一个非常简单的ServiceStack网站。我已经设置了一个简单的登录页面,但是如果出现任何类型的失败,我会显示SS Snapshot of Authenticate generated by ServiceStack页面。

login.cshtml

<form action="@(new Authenticate() { provider = "credentials" }.ToPostUrl())" method="post">
    <input type="text" name="username" />
    <input type="password" name="password" />
    <input type="hidden" name="continue" value="@(new Home().ToGetUrl())" />
</form>


AppHost.cs (Configure snippet)

        TimeSpan slidingExpiry = TimeSpan.FromMinutes(60);
        var authProvider = new CredentialsAuthProvider()
        {
            SessionExpiry = slidingExpiry
        };

        AuthFeature authFeature = new AuthFeature(
           () => new AuthUserSession(),
           new IAuthProvider[] { authProvider },
            htmlRedirect: new Login().ToGetUrl()
           );

        authFeature.IncludeAssignRoleServices = false;
        authFeature.IncludeRegistrationService = false;
        authFeature.IncludeAuthMetadataProvider = false;

我希望能够捕获这个并显示带有错误的剃刀视图,而不是需要进行AJAX调用来进行身份验证。如何设置我的网站以显示验证失败的剃刀视图?

1 个答案:

答案 0 :(得分:2)

关注API First development并使用Ajax绝对是处理Fluent验证错误的首选方法。

此表格发布到Authenticate服务,该服务需要自己的Razor视图才能显示不同的HTML表示形式。因此,您需要添加Authenticate.cshtmlAuthenticateResponse.cshtml查看页面来处理身份验证服务的响应。