? - 是否可以在同一个 MVC 4 托管服务堆栈 Web 服务中有多个身份验证提供程序,我们将有多个端点利用需要不同级别/类型的身份验证的内部和外部服务。
我最初需要实现几个自定义提供程序以满足我们的需求,以便根据 URL 使用不同的身份验证提供程序,到目前为止,我只找到了提供单个自定义身份验证提供程序的示例。
? - 是否可以在同一个 MVC 4 托管服务堆栈 Web 服务中有多个身份验证提供程序,我们将有多个端点利用需要不同级别/类型的身份验证的内部和外部服务。
我最初需要实现几个自定义提供程序以满足我们的需求,以便根据 URL 使用不同的身份验证提供程序,到目前为止,我只找到了提供单个自定义身份验证提供程序的示例。
是的。您可以使用多个提供程序。然后,您可以为不同的资源(url)设置不同的角色来管理您的内部和外部级别。
查看https://github.com/ServiceStack/SocialBootstrapApi示例项目。这个例子有很多不同的身份验证提供程序。每个身份验证提供程序解析到路径 /auth/{provider} ,其中提供程序使用自定义提供程序的 IAuthProvider.Provider 属性和内置提供程序进行解析。
您需要注册每个要使用的身份验证提供程序。
//Register all Authentication methods you want to enable for this web app.
Plugins.Add(new AuthFeature(
() => new CustomUserSession(), //Use your own typed Custom UserSession type
new IAuthProvider[] {
new CredentialsAuthProvider(),
new TwitterAuthProvider(appSettings),
new FacebookAuthProvider(appSettings),
new DigestAuthProvider(appSettings),
new BasicAuthProvider(),
new GoogleOpenIdOAuthProvider(appSettings),
new YahooOpenIdOAuthProvider(appSettings),
new OpenIdOAuthProvider(appSettings),
}));
然后您可以通过点击不同的网址登录,例如