Я пытаюсь следовать простому руководству mvcGettingStarted. Теперь я реализовал как GoogleAuthentication
, так и FacebookAuthentication
провайдеров, и все работает должным образом, я действительно могу войти в систему, и если я вхожу в систему с моим сервером идентификации, у меня также есть требования к ролям для каждого пользователя. Мне было интересно, что, если я хочу сохранить все претензии от внешних поставщиков? Простой пример. Это как мой Facebook настройки провайдера выглядит следующим образом:Thinktecture Identity Server v3 Как сохранить претензии от внешних поставщиков?
var facebookOptions = new FacebookAuthenticationOptions() {
AuthenticationType = "Facebook",
Caption = "Sign in with Facebook",
AppId = "*****",
AppSecret = "****",
SignInAsAuthenticationType = signInAsType,
Provider = new FacebookAuthenticationProvider() {
OnAuthenticated = (context) => {
foreach (var x in context.User) {
context.Identity.AddClaim(new Claim(x.Key, x.Value.ToString()));
}
return Task.FromResult(context);
}
},
};
facebookOptions.Scope.Add("email");
facebookOptions.Scope.Add("public_profile");
facebookOptions.Scope.Add("user_friends");
app.UseFacebookAuthentication(facebookOptions);
В течение каждого цикла я пытаюсь сохранить все Facebook утверждает, что в идентичности, но когда я вернусь в SecurityTokenValidated
обратного вызова, мой стиль hasn Это их.
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions() {
Authority = "https://localhost:44302/identity/",
ClientId = "my_client",
Scope = "openid profile roles email",
RedirectUri = "https://localhost:44302/",
ResponseType = "id_token token",
SignInAsAuthenticationType = "Cookies",
UseTokenLifetime = false,
Notifications = new OpenIdConnectAuthenticationNotifications() {
SecurityTokenValidated = async context => {
//let's clean up this identity
//context.AuthenticationTicket.Identity doesn't have the claims added in the facebook callback
var nid = new ClaimsIdentity(
context.AuthenticationTicket.Identity.AuthenticationType,
Constants.ClaimTypes.GivenName,
Constants.ClaimTypes.Role);
........
Это потому, что я манипулирую двумя разными Точками? Есть ли правильный способ достичь того, что я пытаюсь сделать? Спасибо.
ссылка приводит к 404 https://identityserver.github.io/Documentation/docs/advanced/userService.html – Rahatur
ссылка исправлена ................... –