gcogco10 Ответов: 1

System.invalidoperationexception: 'строка подключения "defaultconnection" не найдена.'


Привет Приятель

У меня есть эта ошибка, каждый раз, когда я пытаюсь войти в систему, я получаю ошибку подключения к базе данных websecurity и не знаю, как ее исправить, пожалуйста, помогите мне. Под моей папкой AppStart у меня есть файл под названием "AuthConfig.cs и поместите код, как показано ниже. В моем Web.config это моя строка подключения.
<connectionStrings>
   <add name="Mystring" providerName="System.Data.SqlClient" connectionString="Data Source=Gcobanim-L\SQLEXPRESS;Database=RegistrationTable" />
 </connectionStrings>


Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using Microsoft.Web.WebPages.OAuth;
using WebMatrix.WebData;

namespace eNtsaPortalWebsiteProject
{
    public class AuthConfig
    {
        public static void RegisterAuth()
        {
            WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
        }
    }
}

1 Ответов

Рейтинг:
12

phil.o

Там нет строки подключения с именем "DefaultConnection". Вместо этого вы должны попробовать использовать настроенное имя (Mystring).


gcogco10

Я изменил значение по умолчанию на "Mystring, теперь я получаю Database.Sql.ClientException login failed for user

phil.o

Тогда что-то не так с верительными грамотами, которые вы предоставляете.

MadMyche

вау... как мы не можем видеть то, что находится прямо перед нами

phil.o

Мне тоже интересно :)

OriginalGriff

"Но эта строка подключения работала в учебнике YouTube, который я быстро переадресовал" :вздох:

gcogco10

@Фил.o до этой ошибки, я впервые получаю исключение системы " необходимо вызвать безопасные переводы в интернете.InitializeDatabaseConnection". Я изменил свой файл AuthoConfig.cs в папке AppStart. Так что же я упустил до этого?

phil.o

Вы переоцениваете мою способность угадывать, что может быть не так среди информации, которую вы не предоставили. Сообщение об ошибке сообщает вам, что существует проблема с предоставленными учетными данными: либо нет пользователя с указанным именем, либо пароль неверен, либо пользователь/пароль верны, но для пользователя не определено право доступа. Какова бы ни была проблема, вы единственный, кто может исследовать, что происходит.

gcogco10

@Филон.o пользователь, который был создан, еще не находится в БД, теперь как это исправить, если пользователь еще не создан как существующий?

phil.o

Вокруг этого нет никакого "исправления". Вы должны создать пользователя в базе данных и предоставить ему соответствующие права доступа до пытаюсь использовать его связь.
Позвольте мне провести аналогию с банковской системой: вы ожидаете, что сможете использовать кредитную карту для банковского счета, который еще не был создан?

gcogco10

Привет @philo.o я создал пользовательскую таблицу в своей БД, мое отображение-Web(Security.InitializedDatabaseConnection("mystring совсем", "пользователи", "идентификатор пользователя", "логин", autoCreateTables:правда) моих пользователей есть поле id(первичный ключ), EmailID, имя пользователя и полное имя. Но я все еще получаю ту же проблему. Пожалуйста помогите

phil.o

Какой движок базы данных вы используете?

gcogco10

практическое руководство

phil.o

Вам нужно научиться управлять пользователями и предоставлять разрешения на MS SQL Server (SSMS-это не компонент database engine, а графический интерфейс для управления базами данных).
Учебники Point - MS SQL Server - назначение разрешений[^]

gcogco10

Я дал разрешение, перейдя по ссылке и youtube. Теперь проверим, не возникает ли все та же проблема.

gcogco10

@phil.o это странно, я следую этому до конца, даю разрешение и даже перезапускаю sql-сервер. Я все еще сталкиваюсь с той же ошибкой и все еще упорствую.

phil.o

Не могли бы вы объяснить, какой SQL-запрос вы выдали для предоставления разрешений?

gcogco10

GRANT SELECT ON OBJECT::TestUser.UserName TO Users;
ГО

phil.o

Я бы предпочел ожидать чего-то вместе USE RegistrationTable; GRANT ALL ON <insert table name here> TO <insert user name here>;.
Вместо того чтобы создавать собственную таблицу пользователей, лучше использовать таблицу системных пользователей, которая уже включена в движок.

gcogco10

Я следил за этим, и я получаю эту странную ошибку в моем редакторе sql. Разрешение ALL устарело и поддерживается только для обеспечения совместимости. Это не подразумевает всех разрешений, определенных для сущности. Даже если я попытаюсь отозвать все на object::dbo.Пользователям общественного

phil.o

Я написал: GRANT ALL потому что я не знаю ваших действительных требований. Чтобы избавиться от сообщения, Вы можете точно указать, какие права вы хотите предоставить указанному пользователю.
Каков эквивалент устаревшего гранта ALL в SQL-Azure?[^]
Как я могу исправить “SQL03042: предложение ALL не поддерживается”?[^]

gcogco10

Хорошо, теперь я получаю эту ошибку, не могу найти объект 'UserReg', потому что он не существует или у вас нет разрешения. Я создал новый логин и сопоставил его с моим доменом(режим аутентификации окна). Что я могу упустить?