WCF - Аутентификация транспорта - получение учетных данных аутентифицированного пользователя - PullRequest
1 голос
/ 14 июля 2010

У меня NetTcpBinding с SecurityMode.TransportWithMessageCredential.

Transport.ClientCredentialType установлено на MessageCredentialType.Windows, но я рассматриваю MessageCredentialType.UserName.

Тогда есть класс DataStoreServerProxyдля получения данных базы данных, которая реализует IDataStoreContract.

Он содержит такие методы, как этот:

Private Function Common_IDataStoreContract_ModifyData(ByVal ParamArray dmlStatements As ModificationStatement()) As ModificationResult Implements IDataStoreContract.ModifyData
        Return wrappedDataStore.ModifyData(dmlStatements)
    End Function

Чтобы добраться до этой точки БД, пользователь должен уже предоставить учетные данные.Вопрос в том, как их получить этими методами?В зависимости от имени пользователя я должен решить, разрешить ли доступ к некоторым таблицам или нет.

1 Ответ

2 голосов
/ 15 июля 2010

Имя пользователя можно получить с помощью OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name

...