Я использовал шаблон Silverlight BusinessApplication в VS2010. Я изменил AuthenticationService для использования моих собственных методов проверки подлинности - требование состоит в том, чтобы пользователь входил в систему со своим логином SQL (без AD в компании).Создание ObjectContext для AuthenticationService без имени пользователя и пароля
При входе в систему я создаю SQLConnection, пытаюсь открыть его, затем получаю их данные (дружественное имя, роли и т. Д.) Из таблицы пользователя. Затем я сохраняю имя пользователя и пароль, которые они ввели, и каждый раз, когда они попадают в БД через DomainService, я переопределяю CreateObjectContext и вставляю имя пользователя и пароль, которые они ввели в БД.
Я поменял AuthenticationService для наследования из IAuthentication и LinqToEntitiesDomainService, в основном для доступа к таблице User.
Я бегу в проблему при запуске приложения, до того, как пользователь вошел в систему управления LoginStatus, который поставляется с шаблоном BusinessApplication имеет следующую строку:.
private readonly AuthenticationService authService = WebContext.Current.Authentication;
Это вызывает конструктор моего AuthenticationService будет вызван и, как часть этого, ObjectContext будет создан, но пользователь еще не выполнил вход в систему, поэтому у меня нет имени пользователя и пароля для добавления в строку подключения. Для разработчиков. Я просто использую свое имя пользователя и пароль, если вы не вошли в систему, но теперь я должен исправить это.
Любые идеи о том, как я могу обойти это? Мои параметры, насколько я могу судить, следующие:
- Не используйте EF (я бы предпочел использовать его, поскольку остальная часть моего доступа к данным осуществляется с использованием EF).
- Создайте фиктивного пользователя в БД и используйте это как учетные данные, если не вошли в систему (не идеально).
Есть ли другой способ обойти это? При построении моего AuthenticationService запрещается вызывать CreateObjectContext?
Любая помощь/предложения оценены.
Update
Я изменил свое AuthenticationService наследовать от DomainService, а не LinqToEntitiesDomainService и использовал SqlDataReader, чтобы получить данные пользователя, который был необходим, но я стил интересно, есть ли другой способ.