Каков наилучший способ изменить утверждения на проверяющей стороне при использовании Windows Identity Foundation - PullRequest
0 голосов
/ 25 января 2012

В настоящее время я делаю это, чтобы изменить свои Заявки о ролях в Global.asax проверяющей стороны.

void Application_AuthenticateRequest(object sender, EventArgs e) {
 if (Request.IsAuthenticated) {

   string[] roleListArray = Roles.GetRolesForUser(User.Identity.Name);
   IClaimsPrincipal claimsPrincipal = HttpContext.Current.User as IClaimsPrincipal;
   IClaimsIdentity claimsIdentity = (IClaimsIdentity)claimsPrincipal.Identity;
   var roleclaims = claimsIdentity.Claims.FindAll(c => c.ClaimType == ClaimTypes.Role);
   foreach (Claim item in roleclaims)
   {
     claimsIdentity.Claims.Remove(item);
   }

   foreach(string role in roleListArray)
   {
     claimsIdentity.Claims.Add(new Claim(ClaimTypes.Role, role));
   }

   HttpContext.Current.User = claimsPrincipal;

  }
}

Это правильный способ или есть лучший способ изменить Заявку в проверяющей стороне послеуспешная аутентификация по STS?

1 Ответ

2 голосов
/ 25 января 2012

Используйте ClaimsAuthenticationManager.

См. ClaimsAuthenticationManager, ClaimsAuthorizationManager и OriginalIssuer

...