Вопрос

Хорошо, вот моя ситуация: у меня есть приложение веб-форм Asp.net, которое установлено и работает на My SP 2013 IIS IIS. SP настроен для использования Windows Auth. Я знаю, что это очень необычно и не рекомендуется, но на данный момент я должен идти таким образом. I.e. У меня нет времени преобразовать это и ряд других приложений ASP.NET к приложениям SP. То, что я пытаюсь сделать, это получить пользователь, который вошел в систему SP и использует эту информацию для аутентификации в моем приложении ASP.NET - а также не подскаженного auth on asp.net. Я думаю, что по природе приложения .NET работает в том же IIS, что и SP 2013, он не подскажет auth Creds 2-й раз., Но как получить информацию о пользователе из токена?

У меня есть код, как

Dim strEmailAddress As String = HttpContext.Current.User.Identity.Name.ToLower
.

в моем asp.net (vb.net) и что он возвращается: 0 # .w | smg \ myuser

И так, как я понимаю, SP использует аутентификацию на основе претензий, и это токен претензии. Мой вопрос в том, как разбирать / принимать этот токен, чтобы получить имя пользователя, чтобы использовать его в моем ASP.NET?

Кто-то в другом месте в сети показал следующее в качестве решения, но я думаю, что мое приложение не может использовать пространство имен Microsoft.sharePoint.administration.Claims. Это так просто, как это?

string userName = null;
SPClaimProviderManager mgr = SPClaimProviderManager.Local;
if (mgr != null)
{
    userName = mgr.DecodeClaim(SPContext.Current.Web.CurrentUser.LoginName).Value;
}
.

Как я понимаю, SPCLAIMPROVIDERMANAGER находится в Microsoft.SharePoint.Administration.Claims пространства имен, но как мне привязать ссылку в моем ASP.NET. Я даже не могу найти эту DLL на сервере SP 2013.

Это было полезно?

Решение 2

I was able to get this to work using the approach above outlined in my question - i was able to copy Microsoft.Sharepoint assembly from server and reference it in my ASP.NET project. The Microsoft.SharePoint.Administration.Claims namespace is found in the Microsoft.Sharepoint assembly

Другие советы

The key is to have both SharePoint and your app use the same authentication source.

So, either your app must change to Windows Auth (aka Integrated NTLM), or SharePoint must use forms (or claims that is based on the same user store).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top