まず、SQLサーバーとADO.Netの基本チュートリアルを行い、質問を投稿することをお勧めします。これは、あなたの概念を明確にするのに役立つだけでなく、より重点的で問題のある分野で助けを得ることができます。ちょっとした気持ちはなく、ちょうどあなたがプログラミングに慣れて欲しいだけです。 :)
ステップ1:
関連するデータベーステーブルを作成します。これにはusers
テーブルとroles
などの他のテーブルが含まれます。
EDIT: DBにテーブルを作成するためにSQLスクリプトを使用できます。以下のサンプルを見つけてください。
-- Sample Table Creation and Index Creation script for MCIS-4423
-- This script is designed to be "re-runnable", but you need to be careful,
-- Since this will DROP the table, which would be bad if it was an existing table with data
-- Make sure you are in the correct database
USE [AdventureWorks]
GO
-- Drop Check Constraint
IF EXISTS (SELECT * FROM sys.check_constraints WHERE object_id = OBJECT_ID(N'[dbo].[CK_Team_TeamID]') AND parent_object_id = OBJECT_ID(N'[dbo].[Team]'))
ALTER TABLE [dbo].[Team] DROP CONSTRAINT [CK_Team_TeamID]
GO
-- Drop Table
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Team]') AND type in (N'U'))
DROP TABLE [dbo].[Team]
GO
-- Create Table
CREATE TABLE [dbo].[Team](
[TeamID] [char](3) NOT NULL,
[TeamName] [varchar](20) NOT NULL,
[City] [varchar](50) NOT NULL,
[StateCode] [char](2) NULL,
[PostalCode] [char](5) NULL,
CONSTRAINT [PK_Team] PRIMARY KEY CLUSTERED
(
[TeamID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
-- Add Check Constraint
ALTER TABLE [dbo].[Team] WITH CHECK ADD CONSTRAINT [CK_Team_TeamID] CHECK (([TeamID] like '[A-Z][A-Z][A-Z]'))
GO
ALTER TABLE [dbo].[Team] CHECK CONSTRAINT [CK_Team_TeamID]
GO
-- Drop index if it exists
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Team]') AND name = N'IX_Team_TeamName')
DROP INDEX [IX_Team_TeamName] ON [dbo].[Team] WITH (ONLINE = OFF)
GO
-- Add non-clustered index on StateCode column
-- Use ONLINE = ON if you have Developer or Enterprise Edition
-- Use MAXDOP = 2 (set to roughly 25% of the number of CPU cores to keep index creation from affecting performance)
CREATE NONCLUSTERED INDEX [IX_Team_TeamName] ON [dbo].[Team]
(
[StateCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = ON, MAXDOP = 2, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
このサンプルはhttp://sqlserverperformance.wordpress.com/2007/09/27/sample-table-and-index-creation-script-for-sql-server-2005/からコピーされ、その内容に関連するすべてのクレジットはそれを書いた作者に行くことに注意してください。
ステップ2:
書き込みSQLクエリはusername
とpassword
彼に基づいてユーザを検索します。あなたはパスワードの暗号化に行くかもしれませんが、それは現在の質問の対象外です。あなたは、クエリにパラメータを追加する方法を理解するためにSqlCommand
ドキュメントhereて読むことができ
SELECT username FROM users
WHERE [email protected] and [email protected]
:
EDIT:次のようにサンプルクエリができます。
ステップ3:あなたは、データベース内のusers
レコードを作成できるように
はWebMethod
秒を追加します。データベーステーブルでINSERT
のクエリを実行するにはSqlCommand
を使用してください。
編集: VB.NetでWebサービスを書く方法のサンプルについてはhereを読んでください。また、SqlCommand
を使用してSQLクエリを実行する方法については、すでにご存じのように、INSERT
クエリについても同様の操作を行います。
ステップ4:
がユーザーを検証WebMethod
を作成します。このためには、SqlCommand
オブジェクトを使用して、手順2で作成したクエリを起動します。結果として行が得られた場合、そのユーザーは有効です。
編集:上記の手順を参照してください。これは自分で作成することができます。
私は十分明確です。
通常の方法は、データベースへのWebサービスを認証することです。[信頼問題の委任](http://stackoverflow.com/questions/1981414/asp-net-windows-authentication-to-sql-server)のため、エンドユーザーをデータベースに認証することはほとんど不可能です。 – Andomar
私は私の質問をクリアしていないかもしれませんが、単純に言えば、データベースにユーザーとそのパスワードを追加する必要があります(VBでこれを行うには上記のコードですか?)。ウェブサービス経由で? – AbdulAziz