2010-07-15 3 views
1

Я использовал шаблон 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, чтобы получить данные пользователя, который был необходим, но я стил интересно, есть ли другой способ.

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^