wcf - How to validate Token Id before calling any web methods? -
i passing tokenid soap header requests.
<soapenv:header> <tem:tokenidentity>12345</tem:tokenidentity> </soapenv:header>
for example have 5 webmethods. validatetokenid() method shoule called automatically before accessing webmethods.
anybody done before?
i got solution validate token
wcf service implemented(idispatchmessageinspector) following 2 methods take care of soap header validation , logging soap requests , soap responses.
afterreceiverequest incoming soap requests automatically called validatetoken() method , logged too.
beforesendreply response soap messages logged here.
#region idispatchmessageinspector members public object afterreceiverequest(ref system.servicemodel.channels.message request, iclientchannel channel, instancecontext instancecontext) { int headerindex1 = operationcontext.current.incomingmessageheaders.findheader("tokenidentity", ""); xmlreader r = operationcontext.current.incomingmessageheaders.getreaderatheader(0).readsubtree(); xelement data = xelement.load(r); var tokenvalue = (string)data; validatetoken(tokenvalue); //log request log4net or //console.writeline("idispatchmessageinspector.afterreceiverequest called."); return null; } public void beforesendreply(ref system.servicemodel.channels.message reply, object correlationstate) { //log response log4net or //console.writeline("idispatchmessageinspector.beforesendreply called."); } #endregion
Comments
Post a Comment