выполнять операции SQL Server с идентификатором пользователя Windows со страницы ASP.NET - PullRequest
1 голос
/ 28 сентября 2010

У меня есть приложение ASP.NET, которое проверяет подлинность пользователей с помощью Ldap в активном каталоге.Это означает, что пользователи вводят свои учетные данные Windows в веб-форму для входа в это приложение.Приложение в основном является интерфейсом базы данных SQL Server, и в моем ограниченном опыте я использую стандартную метку connectionStrings в web.config, чтобы ввести информацию для входа в базу данных (используя регистрацию SQL Server на данный момент).Я хочу изменить это, поэтому вместо этого каждый раз, когда пользователь подключается, он или она выполняет операции с базой данных со своим пользователем Windows.Конечно, база данных уже настроила эти разрешения для пользователей, но я понятия не имею, какую строку подключения я собираюсь использовать, поскольку теперь не будет статической комбинации пользователя и пароля, и я не хочу создаватьSQL Server регистрируется для всех, кто собирается использовать приложение.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010

Используйте класс ConnectionStringBuilder и предоставьте ему исходную строку подключения из web.config. После этого измените свойства имени пользователя и пароля, чтобы они соответствовали свойствам вашего текущего пользователя.

public String GetUsersConnectionString(CurrentUser user) {
  string connectString = ConfigurationManager.ConnectionStrings["LocalSqlServer"]
                        .ConnectionString;

  SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
  builder.UserId = user.UserId;
  builder.Password = user.Password;

  return builder.ToString();
}
1 голос
/ 28 сентября 2010

Вам необходимо настроить машину ASP.NET для делегирования. См. Эту статью базы знаний для SQL 2000 или более новую для SQL 2008.

Мы пробовали это пару раз на работе, но нам не удалось запустить его гладко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...