Реализация пользовательских идентификационных данных и IPrincipal в MVC

Используйте ProcessStartInfo. Свойство WorkingDirectory.

Документы здесь .

19
задан Jay 11 December 2009 в 19:08
поделиться

2 ответа

Я понял это с небольшой помощью из Интернета: Хитрость заключается в том, что вы должны реализовать интерфейс ISerializable в своем классе, который реализует IIdentity. Надеюсь, это поможет кому-то еще немного сэкономить:)

Объявление класса:

[Serializable]
    public class ForumUserIdentity : IIdentity, ISerializable

Реализация для ISerializable:

#region ISerializable Members

        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            if (context.State == StreamingContextStates.CrossAppDomain)
            {
                GenericIdentity gIdent = new GenericIdentity(this.Name, this.AuthenticationType);
                info.SetType(gIdent.GetType());

                System.Reflection.MemberInfo[] serializableMembers;
                object[] serializableValues;

                serializableMembers = FormatterServices.GetSerializableMembers(gIdent.GetType());
                serializableValues = FormatterServices.GetObjectData(gIdent, serializableMembers);

                for (int i = 0; i < serializableMembers.Length; i++)
                {
                    info.AddValue(serializableMembers[i].Name, serializableValues[i]);
                }
            }
            else
            {
                throw new InvalidOperationException("Serialization not supported");
            }
        }

        #endregion

Вот ссылка на статью, в которой есть более подробные сведения о «Feature»

16
ответ дан 30 November 2019 в 04:03
поделиться

У меня это работает, когда я наследую свой класс Identity от MarshalByRefObject.

Также обратите внимание: при использовании Linq-to-Sql проблем не было. Я переключился на Entity-Framework и бах, я получил вышеуказанное сообщение.

4
ответ дан 30 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: