sharepoint 2013 Получить имя для входа программно

Я работаю с поставщиком fbamembership, подключаюсь к Aspnetdb с помощью C #. Я пытаюсь получить имя текущего пользователя в SharePoint 2013, я использую два разных метода, но возникла проблема, когда я использую первый метод 1: SPContext.Current.Web. CurrentUser.LoginName; но возвращает значение null! я не знаю почему!

метод 2: HttpContext.Current.User.Identity.Name; return "0#.f|fbamembershipprovider|[email protected]"

Есть ли способ вернуть только "[email protected]". Спасибо


person Samer    schedule 24.10.2013    source источник
comment
Вы запускаете этот код в среде с поддержкой MDS?   -  person Andrey    schedule 11.12.2013


Ответы (2)


Можете ли вы опубликовать весь блок кода для метода 1? Для метода 2 вы можете просто выбрать выполнение Substring для результата вашего метода 2.

person lem.mallari    schedule 24.10.2013

Для метода 2 вы можете попробовать:

string usr= HttpContext.Current.User.Identity.Name;
SPClaimProviderManager manager = SPClaimProviderManager.Local;
if (manager != null)
{
    if (SPClaimProviderManager.IsEncodedClaim(usr))
       string result = manager.DecodeClaim(usr).Value;
}

ссылка

person langus    schedule 24.10.2013
comment
не работает ! SPClaimProviderManager.IsEncodedClaim (usr) ›› return false - person Samer; 25.10.2013