? - 是否可以在同一个MVC 4托管服务堆栈Web服务中拥有多个身份验证提供程序,我们将有多个端点利用需要不同级别/类型身份验证的内部和外部服务。
我最初需要实现一些自定义提供程序以满足我们的需求,以便根据URL使用不同的身份验证提供程序,到目前为止,我只找到了提供单个自定义身份验证提供程序的示例。
答案 0 :(得分:1)
是。您可以使用多个提供商。然后,您可以拥有不同资源的不同角色(网址)来管理您的内部与外部关卡。
查看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),
}));
然后你可以通过点击
之类的不同网址来登录