EventStore.Projections.Core.Services.Management.SerializedRunAs.DeserializePrincipal C# (CSharp) Method

DeserializePrincipal() public static method

public static DeserializePrincipal ( SerializedRunAs runAs ) : IPrincipal
runAs SerializedRunAs
return IPrincipal
        public static IPrincipal DeserializePrincipal(SerializedRunAs runAs)
        {
            if (runAs == null)
                return null;
            if (runAs.Name == null)
                return null;
            if (runAs.Name == "$system") //TODO: make sure nobody else uses it
                return SystemAccount.Principal;
            return new OpenGenericPrincipal(new GenericIdentity(runAs.Name), runAs.Roles);
        }

Usage Example

Example #1
0
 private void DoSetRunAs1(ProjectionManagementMessage.Command.SetRunAs message)
 {
     _persistedState.RunAs = message.Action == ProjectionManagementMessage.Command.SetRunAs.SetRemove.Set
         ? SerializedRunAs.SerializePrincipal(message.RunAs)
         : null;
     _runAs = SerializedRunAs.DeserializePrincipal(_persistedState.RunAs);
     _pendingPersistedState = true;
 }