如何在第二个服务上获取userName?

时间:2017-07-11 13:52:45

标签: .net wcf wcf-security

我有两个位于不同服务器上的wcf服务。 我打电话给第一个服务:

var ms = new MessagesService.CommonClient();
ms.ClientCredentials.UserName.UserName = "admin";
ms.ClientCredentials.UserName.Password = "12345";
string r = ms.GetStatus();

在此服务中,有第二项服务的呼叫:

public class MessagesService : ICommon
    {
        public string GetStatus()
        {
            var serviceSecond = new ProcessingService.ProcessingClient();
            try
            {
                status = serviceSecond.GetName();
                serviceSecond.Close();
            }
            catch (Exception error)
            {
                serviceSecond.Abort();
                throw new FaultException(error.Message);
            }

            return status;
        }
}

在第一项服务中,我可以获得用户名:

OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name //admin

第二项服务的实施:

public class ProcessingService : IProcessing
{   
    public string GetName()
    {
        return OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name; //WCF01 
    }
}
  

第二个服务返回给我的服务器的名称   第一次服务(WCF01)。如何在第二项服务上获得“管理员”?   谢谢你的帮助!

0 个答案:

没有答案