结合AspNetWindowsAuthProvider和CredentialsAuthProvider

时间:2014-10-13 08:28:09

标签: servicestack windows-authentication

如果当前用户未登录到Windows域,是否可以使用AspNetWindowsAuthProvider并回退到CredentialsAuthProvider?

由于

1 个答案:

答案 0 :(得分:0)

它可以像任何其他AuthProviders一样注册您希望允许的所有身份验证选项,例如:

Plugins.Add(new AuthFeature(
    () => new CustomUserSession(), //Use your own typed Custom UserSession type
    new IAuthProvider[] {
        new AspNetWindowsAuthProvider(this) {
            AllowAllWindowsAuthUsers = true
        }, 
        new CredentialsAuthProvider(),
    }));

用户仍然需要使用他们选择的Auth选项明确登录,即使用Windows Auth登录他们需要访问/auth/windowsauth路由,而使用凭据身份验证登录他们需要明确发布他们的用户名/密码,即:

<form action="/auth/credentials">
    <input type="text" name="Username" />
    <input type="password" name="Password" />
    <input type="submit"/>
</form>

注意:CredentialsAuthProvider仅允许访问在Auth Providers中注册的用户,例如用户已在RegistrationService注册(即/register),但未与WindowsAuth相关联。