首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从IParameterInspector访问上下文信息(WCF)

从IParameterInspector访问上下文信息(WCF)
EN

Stack Overflow用户
提问于 2011-01-11 23:37:56
回答 1查看 674关注 0票数 0

我尝试记录WCF-service所有请求的所有参数。为此,我使用了"IParameterInspector“和实现,并且到目前为止都是有效的。

代码语言:javascript
复制
public class ParameterInspector_for_RequestLogging : IParameterInspector
{
    #region IParameterInspector Members

    public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState) {
            //Note: correlationState contains an object with contains the inputValues
            //...
            log.WriteEntry(
                new LogData(
                    String.Format("          Req={0}, Time: {1}ms, Input-Parameter: '{2}', Output-Parameter: '{3}', ReturnValue: '{4}'"
                        , operationName
                        , Environment.TickCount - correlationStateData.RequestStartAt
                        , String.Join("','", inputParameter.ToArray())
                        , String.Join("','", outputParameter.ToArray())
                        , returnValue.ToString()
                        )
                    )
                );

    }
}

带输出:

代码语言:javascript
复制
Req=ABC, Time: 500ms, Input-Parameter: '123,ABC,zzz,55', Output-Parameter: '0', ReturnValue: '0'"

所以我有两个问题。1.如何找到输入和输出参数的正确名称。2.如何粘贴上下文信息can /如何访问上下文信息。(如用户名)

我尝试生成以下输出:

代码语言:javascript
复制
User: CurrentUser (UserNumber) - Req=ABC, Time: 500ms
  , Input-Parameter: '<int32>para1: 123, <string>Para2: ABC
    ,<string>Para3: zzz, <ref byte>Para4: 55'
  , Output-Parameter: '<byte> 0', ReturnValue: '<Int64> 0'"
EN

回答 1

Stack Overflow用户

发布于 2011-06-29 23:09:53

尝试在System.ServiceModel.OperationContext中查找

我能够使用System.ServiceModel.OperationContext.Current.ServiceSecurityContext.PrimaryIdentity获取IParameterInspector中的当前用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4659361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档