[Mono-list] Authorization in .NET Remoting channel

Robert Jordan robertj at gmx.net
Mon Jun 23 08:33:35 EDT 2008

paszczi wrote:
> Hi,
> I'm struggling to find a way of implementing authorization in .NET
> remoting. The issue is that I've developed custom sink and I'm able
> to pass some credentials which then can be authenticated by server.
> But what I want to do is to check whether remote user who has called
> shared object's method can in fact invoke it (using my custom
> security framework). I've tried to pass custom principal/identity to
> Thread.CrrentPrincipal - but somehow this is always empty
> GenericIdentity (I've tried this on windows and I've only managed to
> pass WindowsIdentity instead of empty one :(). Any suggestions - the
> basic issue is how to get those credentials from sink to the remoted
> object :)

You can inject the client identity in the current call context:


// this is you sink's process message:
ProcessMessage(IMessage msg, ....)
	MethodCall mc = msg as MethodCall;
	if (mc != null) {
		mc.LogicalCallContext.SetData ("UserName", WindowsIdentity.GetCurrent 



class SomeRemoteClass : MarshalByRefObject
	public void Method ()
			Console.WriteLine (CallContext.GetData("UserName"));

There might be another ways to do this, though. I'm just writing this
down from weak memory ;-)


More information about the Mono-list mailing list