Featured post
Dynamic WCF Service Contracts based on authentication credentials -
1) want have client application adds reference wcf service
2) client application should able send credentials wcf service
3) based on credentials permissions, wcf service should return appropriate interface (service contract) client
4) client consumes it.
e.g. suppose hav class @ server, defines entity 'asset' , have methods related possible operations on it
class asset { add() { ..... } edit() { ...... } flag() { ...... } deploy() { ........ } }
now have client application wants perform actions on 'asset'. don't want give entire class dll client. instead want give interface. client can consume , call appropriate actions on it.
now problem when client app adds reference wcf service. how can appropriate interface asset class returned client based on ws* or authentication credentials. .net 4.0 provides easy way create , return service contract dynamically?
e.g.
//following pseudo code if(current.user.role == 'admin') { return iassetsforadmin; } else { return iassetsforgeneraluser; } interface iassetforadmin { add(); edit(); flag(); } interface iassetforgeneraluser { flag(); }
this not possible. can't return different contract per user role. not related wcf whole web services architecture , .net architecture because defining new contract = defining new service reference = recompiling application.
but can solved role based security. authenticated user member of role allowed execute selected operations. achieve cau use principalpermission (for imperative demand of permissions) or principalpermissionattribute (for declarative demand of permissions). if unauthorized user calls secured method securityexception thrown. thing need configure wcf security model roles assigned authenticated users.
- Get link
- X
- Other Apps
Comments
Post a Comment