2013-10-03 3 views
1

Может ли кто-нибудь сказать мне, где будут определены детали подключения для OpenAuth?Как установить соединение для OpenAuth Get Defined в шаблоне Visual Studio Asp.Net

Я знаю, что для него требуется строка соединения, называемая «DefaultConnection», и она предоставляется по умолчанию в web.config, однако я не могу найти, где OpenAuth определяет, что ему нужен вызов connectionString DefaultConnection.

В файле web.config, если вы изменили имя DefaultConnection на что-то еще, а затем измените ConnectionString в разделах членства, roleManager и профиля в соответствии с вашим новым соединением, все будет работать так, как вы ожидали. Однако OpenAuth больше не будет работать, поскольку он ожидает строку соединения, называемую DefaultConnection, но она не даст вам разумного сообщения об ошибке при сборке, а во время выполнения вы получите очень длинное и сложное сообщение об ошибке, в котором говорится, что он не может найти база данных и т. д.

Я узнал об этом трудным путем.

В настоящее время, чтобы обойти это, у меня есть две соединительные стойки с теми же деталями, которые довольно бессмысленны.

Кто-нибудь знает?

+0

Вы используете его в приложении для веб-форм или в приложении MVC? Они совершенно разные. –

+0

Я использую его в приложении Web Forms –

ответ

0

Статический класс OpenAuth имеет статическое свойство строки с именем ConnectionString. Он инициализируется жестко запрограммированным значением «DefaultConnection» в конструкторе OpenAuth. Вы можете установить его на свое значение в любое время после этого.

namespace Microsoft.AspNet.Membership.OpenAuth 
{ 
    public static class OpenAuth 
    { 
     public static AuthenticationClientManager AuthenticationClients { get; } 
     public static string ConnectionString { get; set; } 
     public static string UsersAccountsTableName { get; set; } 
     public static string UsersDataTableName { get; set; } 
     //.... 
    } 
} 
+0

Спасибо. Я думал, что это, возможно, было жестко закодировано, я просто хотел подтвердить, что ничего не пропустил. –

0

Если вы просто добавили строку подключения по умолчанию к своей веб-конфигурации, она будет работать. Это то же самое, что и обычный, который вы используете для подключения к базе данных.

<add name="DefaultConnection" 
providerName="System.Data.SqlClient" 
connectionString="Data Source=xxxx;Initial Catalog=yyy; 
Persist Security Info=True;User ID=your username;Password=password"/>