Създайте нов потребител в Winforms с помощта на HDI Membership Provider

Имам уебсайт с формуляри за вход и регистрация, използвайки персонализиран доставчик на членство в 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, тъй като имам име на приложение, което е зададено не null в структурата на базата данни, но без да го предоставя. Не приема създаване на нови потребители, въпреки че споменавам името на приложението във файла 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
Добавихте ключа за настройки на приложения като име на приложение, а не име на приложение, както в моя отговор на този въпрос. Така че или трябва да промените кода, който извлича, за да препраща към стойността в конфигурационния файл, или трябва да промените конфигурационния файл. - 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
Вие сте добре дошъл. Бихте ли могли също да маркирате отговора ми в публикацията за настройки на приложението (stackoverflow.com/questions/8692694/) като отговор, тъй като това беше част от решението? - person competent_tech; 01.01.2012