Вам нужно где-то хранить IPrincipal и восстанавливать его при каждом запросе. Если вы будете использовать FormsAuthentication, это хорошее решение:
Аутентификация с помощью ASP.NET 2.0 Forms - возможность сделать ее индивидуальной, но простой
Вы можете найти другие решения здесь:
Где хранить информацию о зарегистрированном пользователе в ASP.NET MVC с использованием проверки подлинности с помощью форм?
и, вероятно, во многих других вопросах StackOverflow:)
EDIT
О MyBusinessLayerSecurityClass.CreatePrincipal (id, id.Name):
Вы должны прочитать эту страницу:
http://msdn.microsoft.com/en-us/library/aa480476.aspx
Специально это:
The
FormsAuthenticationModule
класс создает
GenericPrincipal
объект и сохраняет его в HTTP
контекст.
GenericPrincipal
объект содержит ссылку на
FormsIdentity
экземпляр, который представляет в настоящее время
аутентифицированный пользователь. Вы должны разрешить
формы проверки подлинности для управления этими
задачи для вас. Если ваши приложения
иметь конкретные требования, такие как
установка пользователя
свойство пользовательского класса, который
реализует
IPrincipal интерфейс,
ваше приложение должно обрабатывать
PostAuthenticate
событие.
PostAuthenticate
событие происходит после
FormsAuthenticationModule
проверил аутентификацию форм
печенье и создал
GenericPrincipal и
* * FormsIdentity тысяча сорок-девять
объекты. В этом коде вы можете
построить обычай
IPrincipal объект
это оборачивает
FormsIdentity объект,
а затем сохранить его в
HttpContext. Пользователь
свойство.
FormsIdentity управляется автоматически после установки файла cookie аутентификации. Все, что вам нужно сделать, это обернуть это в свой IPrincipal. Все это происходит, когда свойство HttpContext.Current.User не равно нулю (это GenericPrincipal, который вы вскоре замените). Если для HttpContext.Current.User задано значение NULL, ранее не было создано cookie для проверки подлинности, и пользователь не прошел проверку подлинности.