C# sharepoint 2013以编程方式获取登录名

C# sharepoint 2013以编程方式获取登录名,c#,sharepoint,sharepoint-2013,C#,Sharepoint,Sharepoint 2013,我与fbamembership提供程序一起使用c连接到Aspnetdb# 我尝试在SharePoint 2013中获取当前用户的名称,我使用了两种不同的方法,但在使用第一种方法时出现了问题 方法1:SPContext.Current.Web.CurrentUser.LoginName但它返回空值!我不知道为什么 方法2:HttpContext.Current.User.Identity.Name 返回“0#.f | fbamembershipprovider”|test@hotmail.com"

我与fbamembership提供程序一起使用c连接到Aspnetdb# 我尝试在SharePoint 2013中获取当前用户的名称,我使用了两种不同的方法,但在使用第一种方法时出现了问题 方法1:SPContext.Current.Web.CurrentUser.LoginName但它返回空值!我不知道为什么

方法2:HttpContext.Current.User.Identity.Name 返回“0#.f | fbamembershipprovider”|test@hotmail.com"

有办法回去吗?”test@hotmail.com“只是。
谢谢

您能发布方法1的全部代码块吗?对于方法2,您可以选择对方法2的结果执行
子字符串。

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

不起作用!isIncodedClaim(usr)>>返回false您是否在启用MDS的环境中运行此代码?