0

? - 是否可以在同一个 MVC 4 托管服务堆栈 Web 服务中有多个身份验证提供程序,我们将有多个端点利用需要不同级别/类型的身份验证的内部和外部服务。

我最初需要实现几个自定义提供程序以满足我们的需求,以便根据 URL 使用不同的身份验证提供程序,到目前为止,我只找到了提供单个自定义身份验证提供程序的示例。

4

1 回答 1

1

是的。您可以使用多个提供程序。然后,您可以为不同的资源(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),     
}));

然后您可以通过点击不同的网址登录,例如

  • /身份验证/脸书
  • /身份验证/推特
于 2012-10-19T14:21:35.897 回答