forum.rastrnet.ru

forum.rastrnet.ru (http://forum.rastrnet.ru/index.php)
-   Программируем (http://forum.rastrnet.ru/forumdisplay.php?f=35)
-   -   asp.net web-service (http://forum.rastrnet.ru/showthread.php?t=32980)

ZiC_ 27.06.2007 01:08

asp.net web-service
 
В общем такая проблема
Нужно сделать веб-сервис с применением asp.net
Будут пользователи, которых может создавать только админ, и которые смогут добавлять какую-либо инфу на сервер.
Также будут пользователи, которые могут региться без участия админа и просто просматривать инфу, которую оставили другие пользователи
Вообще по ходу проекта часто возникают разные вопросы, но для начала:
Я так понял, что лучше выбрать метод аутентификации Forms. Знаю, что на сайтах есть специальные элементы управления (из toolbox), которые автоматически аутентифицируют пользователя. В веб сервисах такого нет, я использовал функцию FormsAuthentication.SetAuthCookie(login, true)
Мне интересно, инфа login хранится в куки-файле, который отправляется пользователю? то есть, при желании, пользователь может поменять свое имя в куки на admin и получит его права?
Если это так, то должен быть другой метод, как это сделать надежней?
Еще вопрос: имею небольшие ограниченные знания, что asp.net сама предоставляет базу данных с таблицами для работы с пользователями (например: aspnet_Membership, aspnet_Users, aspnet_Profile и т д) Пока что я нашел как с этим работать только из веб сайта, а разве для веб сервисов нету аналогичных функций?
Сам уже перерыл intuit, rsdn, aspmania и еще пару сайтов
Пытался читать msdn, но там инфа довольно разрозненная, и пока что получилось накопать только отдельные куски, целостной картины в голове не наблюдается
Буду благодарен за почти любую информацию, сайты с полезными статьями (желательно конкретно про веб сервисы, а не в общем про asp.net) и конечно же советы:)
спасибо заранее

Casy 28.06.2007 00:09

Я не понял сути твоей задачи. ASP .NET - это одно, веб сервисы - другое. Как тебе их надо связать, и почему ты решил, что все фичи аспнета прокатят на веб сервисах. Начни попорядку, что именно тебе надо. В кратце поставь суть задачи.

ЗЫЖ есть книги по аспнету и веб сервисам, причем достаточно новые. Если надо - выложу на 8-ку

ZiC_ 28.06.2007 23:37

Сейчас я вроде бы разобрался, как пользоваться функциями классов membership и ему подобных. Теперь другая проблема возникла.
В файле Web.config я прописал в defaultProvider свою базу данных, в которой утилитой aspnet_regsql создал таблицы с пользователями, ролями и т п. Проблема вот в чем: вижуал студио сама создала еще одну базу данных в папке App_Data, и роли, которые я создаю, она хранит в этой БД. Но пользователей она хранит в моей базе данных, которую создал я. В принципе все работает (хотя я не особо понимаю почему), но мне не нужна вторая БД в папке проекта. Пробовал ее удалить, роли естесственно тоже удаляются, и при запуске сервиса эта БД опять создается, но теперь приходится добавлять роли заново.
Может быть я что-то неправильно прописал в web.config, вот этот кусок:
<connectionStrings>
<add name="MySqlConnectionString" connectionString="моя строка подключения" providerName="System.Data.SqlClient"/>
</connectionStrings>

<membership defaultProvider="qwMembershipProvider">
<providers>
<add name="qwMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MySqlConnectionString"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="5"/>
</providers>
</membership>
За книги буду очень благодарен

ZiC_ 06.07.2007 23:57

ладно, с этим тоже разобрался:)
еще один очень интересный для меня вопрос:
я работаю с mssql, пишу на нем хранимые процедуры. Если в процедуре что-нить не так (запрос неправильный выполнен был или еще че-нить), то в вызывающую программу выбрасывается исключение
А могу ли я в хранимой процедуре добавить такой код, который бы выбрасывал исключение, которое я определю? Ну и, собственно, как это сделать?

javeL 07.07.2007 01:58

MSSQL?? это что?
Может MySQL?

PAPA_KARLO 07.07.2007 02:50

MicroSoft SQL

Casy 08.07.2007 13:07

Цитата:

Сообщение от ZiC_ (Сообщение 487198)
А могу ли я в хранимой процедуре добавить такой код, который бы выбрасывал исключение, которое я определю? Ну и, собственно, как это сделать?

Сервер MSSQL если что-то идет не так просто выкидывает ошибку в виде кода ошибки. А вот клиент, котоый ты используешь уже выкидывает исключение, которое ты ОБЯЗАН обработать нужным тебе способом.

ЗЫЖ все вышесказанное относится к MSSQL 2000. Для MSSQL 2005 все выглядит иначе.

ZiC_ 11.07.2007 19:49

то есть программно выкинуть исключение нельзя... ну ладно, сделаю по другому. Спасибо за ответы.
Можно попросить в ближайшие неделю-две тему не закрывать: проект я еще не закончил, вдруг опять появяться вопросы.
Огромное спасибо за ответы

ZiC_ 18.07.2007 22:15

еще вопрос таки появился. Я, конечно, извиняюсь, что он не связан с назавнием темы, но он связан с моим проектом, поэтому решил задать его здесь.
Теперь мне надо разработать программу, при запуске которой в tray добавлялась ее иконка. Я нашел, что это делается добавлением компонента NotifyIcon в форму. Но я хочу, чтобы при загрузке программы форма не показывалась, а была только иконка в трее. Метод Hide при событии OnLoad формы не работает. Если форму не загружать вообще, то и компонент NotifyIcon придется создавать ручками
Отсюда пара вопросов:
как скрыть форму при запуске?
либо, как руками добавить иконку в трей? (желательно с исходником, желательно на c#, хотя и другие языки тоже подойдут)
Если у кого есть ссылки на исчерпывающие ответы буду очень благодарен

ZiC_ 25.07.2007 20:55

ладно, сделал через ApplicationContext, NotifyIcon определил в коде. В принципе, проект уже почти закончил, остались мелкие доработки, так что всем спасибо за помощь


Текущее время: 09:32. Часовой пояс GMT +7.

Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot

Форум открыт в июле 2004 г.