Contoso Insurance sample显示了许多很棒的示例,但是我想创建一个自定义身份验证方法,该方法可以插入以下code。
internal static async Task<ProviderCredentials> GetCurrentCredentialAsync(HttpRequestMessage request, IPrincipal user)
{
var principal = user as ClaimsPrincipal;
var claim = principal.FindFirst("http://schemas.microsoft.com/identity/claims/identityprovider");
if (claim == null) return null;
var provider = claim.Value;
ProviderCredentials creds = null;
if (provider.IgnoreCaseEqualsTo("microsoftaccount"))
creds = await user.GetAppServiceIdentityAsync<MicrosoftAccountCredentials>(request);
else if (provider.IgnoreCaseEqualsTo("facebook"))
creds = await user.GetAppServiceIdentityAsync<FacebookCredentials>(request);
else if (provider.IgnoreCaseEqualsTo("aad"))
creds = await user.GetAppServiceIdentityAsync<AzureActiveDirectoryCredentials>(request);
return creds;
}
我想在MVC应用程序和移动应用程序上实现这一点。
任何指导都将不胜感激。
答案 0 :(得分:2)
查看书籍 - http://aka.ms/zumobook - 它包含有关移动和MVC应用程序身份验证的信息。
您的主要问题是您的自定义身份验证不会集成到/.auth/me端点,因此您将无法从GetAppServiceIdentityAsync<>()
方法获取信息。您需要编写一个与您的自定义身份验证方案一起使用的自定义库。