Пользовательская функция проверки подлинности на основе форм SharePoint Forms "Войти как"
На фундаменте SharePoint 2013 установлена проверка подлинности на основе форм. Таким образом, для системной учетной записи я хочу реализовать функцию "Войти как", специально системную учетную запись можно выбрать пользователя из списка пользователей и войти в систему как этот пользователь. Другими словами, я хочу реализовать функцию олицетворения пользователя для системной учетной записи. Итак, как аутентифицировать другого пользователя без пароля в аутентификации на основе форм, если есть SPUser, SPClaim или SPPrincipal. И есть привилегии системной учетной записи? Также я попробовал следующее:
FormsAuthentication.SetAuthCookie(spUser.LoginName, false);
или же
List<Claim> claims = new List<Claim>{
new Claim(ClaimTypes.Name, spUser.Name),
new Claim(ClaimTypes.NameIdentifier, spUser.UserId.ToString())
};
ClaimsIdentity identity = new ClaimsIdentity(claims);
IClaimsPrincipal claimsPrincipal = ClaimsPrincipal.CreateFromIdentity(identity);
var principal = SPFederationAuthenticationModule.Current.ServiceConfiguration.ClaimsAuthenticationManager.Authenticate(string.Empty, claimsPrincipal);
var transformedPrincipal = SPFederationAuthenticationModule.Current.ServiceConfiguration.ClaimsAuthenticationManager.Authenticate(SPContext.Current.Web.Url, claimsPrincipal);
var sessionToken = new Microsoft.IdentityModel.Tokens.SessionSecurityToken(transformedPrincipal, SPFederationAuthenticationModule.Current.SignInContext)
{
IsPersistent = false
};
SPSecurity.RunWithElevatedPrivileges(() => SPFederationAuthenticationModule.Current.SetPrincipalAndWriteSessionToken(sessionToken, true));
Но это не решает мою проблему.