Создайте нового пользователя в Winforms с помощью поставщика членства HDI

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

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

Итак, мне нужно это знать, чтобы идти дальше.

1) Могу ли я использовать поставщика членства HDI, как я использовал его в своем веб-приложении? Если да, то как я могу это сделать?

Как и раньше, я столкнулся со многими проблемами и до сих пор не получил разъяснений здесь

2) Если нет, как мне использовать то же самое членство в HDI.

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

Я могу зарегистрировать пользователя, но он не использует членство, и я не могу понять, почему он не выбирает поставщика членства из файла app.config.

Еще раз я предоставляю свою структуру базы данных пользователей:

введите здесь описание изображения


person coder    schedule 01.01.2012    source источник
comment
Можете ли вы включить информацию о том, где вы получили этого поставщика членства (либо с сайта, либо самостоятельно) и основан ли он на стандартной структуре поставщика членства MS?   -  person competent_tech    schedule 01.01.2012
comment
Это от Microsoft Asp.Net Как мне видео? Вот ссылка asp.net/web-forms/videos/how-do-i/   -  person coder    schedule 01.01.2012
comment
Хорошо, это хорошие новости. Вы должны быть в состоянии использовать шаги в моем ответе, чтобы решить свой вопрос.   -  person competent_tech    schedule 01.01.2012


Ответы (1)


Вы можете довольно легко использовать стандартный поставщик членства в приложении Windows Forms.

Однако без более подробной информации об источнике членства в HDI будет сложно дать точные инструкции.

Вы можете попробовать следующие инструкции, чтобы увидеть, будут ли они работать для вас:

1) Добавьте ссылку на System.Web в приложение Windows Forms.

2) Добавьте Imports System.Web.Security в файл(ы) кода, где вы хотите использовать поставщика.

3) Вызовите методы Membership, как вы это делаете в сети, т.е. Memebership.ValidateUser(user, password).

4) Добавьте блок system.web в файл app.config Windows Forms (в разделе configuration), а затем скопируйте блок membership из файла web.config в этот блок. Например:

<configuration>
  <system.web>
    <membership defaultProvider="HDIMembershipProvider">
      <providers>
        <clear/>
        <add name="HDIMembershipProvider" type="frmStartup.HDIMembershipProvider, frmStartup"/>
      </providers>
    </membership>
  </system.web>
</configuration>

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

Обновить

У вашего app.config две проблемы:

1) Раздел appSettings должен быть точно следующим (ваши текущие appSettings имеют «Имя приложения» в качестве ключа, а ваш код использует «Имя приложения»):

<appSettings>
  <add key="ApplicationName" value="/gAnnotation" />
</appSettings>

2) Раздел членства должен быть точно следующим (тип должен указывать полное имя типа, за которым следует имя сборки, в которой живет тип, и defaultProvider должен соответствовать имени в добавленном провайдере):

<membership defaultProvider="HDIMembershipProvider">
  <providers>
    <clear/>
    <add name="HDIMembershipProvider" type="frmStartup.HDIMembershipProvider, frmStartup"/>
  </providers>
</membership>

Если вы измените свой app.config точно так, как показано выше, ваше приложение будет работать (я протестировал его и убедился, что создание пользователя и вход в систему работают).

person competent_tech    schedule 01.01.2012
comment
@Competent_tech-я согласен с вами, так как это идеальный ответ, и я сделал то же самое, что вы сказали выше, со ссылкой на мой предыдущий вопрос здесь stackoverflow.com/questions/8692694/ Я могу зарегистрироваться, и все идет хорошо, но он не берет поставщика членства из app.config, поскольку у меня есть имя приложения, которое установлено не нулевым в структуре базы данных, но без его предоставления. Он не принимает никакого нового создания пользователя, хотя я упоминаю имя приложения в файле app.config . - person coder; 01.01.2012
comment
Как и в моем предыдущем вопросе, я ответил на свой вопрос. Если вы можете проверить, будет легко понять, что я имею в виду. - person coder; 01.01.2012
comment
Я предоставил новый ответ на ваш предыдущий вопрос, который показывает, как установить и получить имя приложения из app.config. Можете ли вы отредактировать свой вопрос, включив в него полный файл app.config? Подозреваю, что там могут быть какие-то проблемы. - person competent_tech; 01.01.2012
comment
Я пытаюсь отредактировать и проверить, работает ли код нормально, и опубликую свой код. - person coder; 01.01.2012
comment
Я обновил свой файл app.config, вы можете просмотреть его, но он все еще не работает. - person coder; 01.01.2012
comment
@Kiran: я не вижу app.config. Можете ли вы отредактировать свой вопрос и добавить его? Кроме того, не могли бы вы предоставить более подробную информацию о том, что не работает (сообщение об ошибке; если да, то что?) - person competent_tech; 01.01.2012
comment
Я обновил свой предыдущий вопрос, поскольку он здесь не имеет отношения, и я получаю эту ошибку: параметризованный запрос '(@Username nvarchar (4), @ApplicationName nvarchar (4000), @Password' ожидает параметр '@ApplicationName' , который не был поставлен. - person coder; 01.01.2012
comment
Вы добавили ключ appsettings в качестве имени приложения, а не ApplicationName, как в моем ответе на этот вопрос. Таким образом, вам нужно либо изменить код, который извлекает ссылку на значение в файле конфигурации, либо вам нужно изменить файл конфигурации. - person competent_tech; 01.01.2012
comment
Я думаю, что совершил ошибку, можете ли вы изменить мой код, так как за ним трудно следовать, и я предоставляю весь исходный код с поставщиком членства, чтобы вы могли взглянуть на мой источник и изменить его. Вот ссылка rapidshare.com/files/2540659960/New.rar - person coder; 01.01.2012
comment
Хорошо, ваши проблемы были только в app.config. Я обновил ответ, чтобы показать, что именно вам нужно сделать. - person competent_tech; 01.01.2012
comment
@competent_tech-Большое спасибо за решение проблемы в моем коде и извините за беспокойство. Наконец-то день закончился счастьем.. :) - person coder; 01.01.2012
comment
Всегда пожалуйста. Не могли бы вы также отметить мой ответ в сообщении appSettings (stackoverflow.com/questions/8692694/) в качестве ответа, поскольку это было частью решения? - person competent_tech; 01.01.2012