SharePoint 2007 서비스 및 .NET 웹 응용 프로그램에서 모두 사용하는 사용자 지정 멤버 자격 공급자가 있습니다. 이제 SharePoint 플랫폼을 2010 Foundation으로 업데이트하려고하는데 공급자가 작동하지 않습니다. 다음은 사용자를 인증하고 동일한 키를 사용하여 인증 쿠키를 설정하는 두 가지 예입니다.SharePoint 2010의 이전 멤버십 공급자 사용
MembershipProvider provider = Membership.Providers["Provider"];
//Alternative one using cookiename (ProviderUserKey from other source then provider)
if (provider.ValidateUser(user, passwd))
{
FormsAuthentication.SetAuthCookie(cookieName, false);
Response.Redirect("/");
}
else
{
ShowErrorMsg();
}
//Alternative two using provider to get ProviderUserKey same as cookieName above
if (provider.ValidateUser(user, passwd))
{
MembershipUser memberUser = provider.GetUser(user, false); //false or true doesnt matter in this provider
FormsAuthentication.SetAuthCookie(memberUser.ProviderUserKey.ToString(), false);
Response.Redirect("/");
}
else
{
ShowErrorMsg();
}
문제는 SharePoint 2010에서 클레임 기반 ID를 사용하기 때문에 다음을 시도했지만 성공하지 못했습니다.
MembershipProvider provider = Membership.Providers["Provider"];
if (provider.ValidateUser(user, passwd))
{
SPFormsAuthenticationProvider authProvider = IisSetting.FormsClaimsAuthenticationProvider;
SecurityToken token = SPFormsUserNameSecurityTokenHandler.CreateSecurityToken(authProvider.MembershipProvider, cookieName, passwd);
SPFederationAuthenticationModule.Current.SetPrincipalAndWriteSessionToken(token);
}
그러나 이것은 나를 위해 작동하지 않습니다. 누군가는 클레임 ID를 다른 키에 기반하여 제공된 사용자 이름을 기반으로하는 방법을 알고 있습니까?
확인하고는 동일합니다. – Pushpendra