0

fbamembership プロバイダーを使用して C# を使用して Aspnetdb に接続します。SharePoint 2013 で現在のユーザーの名前を取得しようとしています。2 つの異なる方法を使用していますが、最初の方法 1 を使用すると問題が発生しました: SPContext.Current.Web.CurrentUser.LoginName ; しかし、それはnullを返します! どうしてか分かりません!

方法 2: HttpContext.Current.User.Identity.Name; 「0#.f|fbamembershipprovider|test@hotmail.com」を 返す

「test@hotmail.com」のみを返す方法はありますか。ありがとうございました

4

2 に答える 2

0

方法 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;
}

リンク

于 2013-10-24T12:07:06.477 に答える