0
A
답변
1
감사를 제공하는 다음 코드를 사용합니다. 제 시나리오는 양식 인증 중에 토큰을 만들어야하므로 동적으로 멤버 자격 공급자를 계획하고 있습니다. 대답을 찾았습니다
private static string GetFbaZoneUrl(SPWeb web)
{
string providerAndRole = null;
SPWebApplication webApp = web.Site.WebApplication;
foreach (var zone in webApp.IisSettings.Keys)
{
var settings = webApp.IisSettings[zone];
var fbaProvider = webApp.IisSettings[zone].FormsClaimsAuthenticationProvider;
if (fbaProvider != null)
{
// We found the zone on the web app where FBA is enabled.
// This is the zone whose URL we want.
// SPAlternateUrl fbaUrl = webApp.AlternateUrls.GetResponseUrl(zone, false);
providerAndRole = fbaProvider.MembershipProvider + "," + fbaProvider.RoleProvider;
break;
}
}
return providerAndRole;
}
이 코드가 도움이 되었 길 바랍니다.
감사합니다. 라마
0
이 국지적 이름은 다음과 같은 형식이 될 것입니다 (당신은 폼 기반의 계정으로 로그인 한 경우) 현재 사용자 이름을 얻을 CSOM에서, 매우 쉽습니다 :
"i:0#.f|membership|someone.example.com"
"i : 0 # .f | membership | someone.example.com"은 멤버 자격 공급자 이름입니다. javascript substring 함수를 사용하여이 섹션을 가져옵니다.
현재 사용자의 로그인 명을 얻기 위해, 또한 응답을function GetCurrentUsername()
{
var ctxt = new SP.ClientContext.get_current();
this.website = ctxt.get_web();
this.currentUser = website.get_currentUser();
ctxt.load(currentUser);
ctxt.executeQueryAsync(Function.createDelegate(this, this.onSucceess), Function.createDelegate(this, this.onFail));
}
function onSucceess(sender, args)
{
alert(currentUser.get_loginName());
}
function onFail(sender, args)
{
alert('request failed ' + args.get_message() + '\n'+ args.get_stackTrace());
}