Ich würde empfehlen, dass Sie zunächst grundlegende Lernprogramme auf SQL Server sowie ADO.Net durchlaufen und dann Fragen stellen. Dies wird dazu beitragen, Ihre Konzepte klar zu machen, und jede Hilfe kann in stärker fokussierten Problembereichen bereitgestellt werden. Übrigens, keine harten Gefühle, nur wollen, dass Sie sich beim Programmieren wohl fühlen. :)
Schritt 1:
relevante Datenbanktabellen erstellen. Diese können eine Tabelle users
und andere Tabellen wie roles
usw. enthalten.
EDIT: Sie können SQL-Skripts verwenden, um Tabellen in DB zu erstellen. Bitte finden Sie ein Beispiel unten.
-- 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
Bitte beachten Sie, dass diese Probe aus http://sqlserverperformance.wordpress.com/2007/09/27/sample-table-and-index-creation-script-for-sql-server-2005/ kopiert und alle seine Inhalte geht an den Autor bezogenen Kredit wer es geschrieben hat.
Schritt 2:
schreiben SQL-Abfrage um einen Benutzer zu finden, basierend auf seiner username
und password
. Sie können zur Passwortverschlüsselung gehen, aber das ist für die aktuelle Frage nicht möglich.
EDIT: Beispielabfrage kann wie folgt sein:
SELECT username FROM users
WHERE [email protected] and [email protected]
Sie durch SqlCommand
Dokumentation lesen können here zu verstehen, wie zu einer Abfrage-Parameter hinzuzufügen.
Schritt 3:
hinzufügen WebMethod
s, so dass Sie users
Datensätze in der Datenbank erstellen können. Verwenden Sie SqlCommand
, um INSERT
Abfragen in Ihren Datenbanktabellen auszulösen.
EDIT: Lesen Sie here für ein Beispiel zum Schreiben von Webdiensten in VB.Net. Und ja, Sie wissen bereits jetzt, wie Sie SqlCommand
verwenden, um SQL-Abfragen auszulösen, tun Sie dasselbe für INSERT
Abfragen auch.
Schritt 4:
eine WebMethod
erstellen, die einen Benutzer validiert. Verwenden Sie dazu das Objekt SqlCommand
, um Ihre in Schritt 2 geschriebene Abfrage auszulösen. Wenn Sie als Ergebnis eine Zeile erhalten, ist der Benutzer gültig.
EDIT: Verweisen Sie die Anweisungen auf die obigen Schritte, und Sie sollten in der Lage sein, dies selbst zu erstellen.
Hoffe ich bin klar genug.
Der normale Ansatz besteht darin, den Webdienst für die Datenbank zu authentifizieren.Es ist nahezu unmöglich, den Endbenutzer aufgrund von [Delegierung von Vertrauensproblemen] an die Datenbank zu authentifizieren (http://stackoverflow.com/questions/1981414/asp-net-windows-authentication-to-sql-server). – Andomar
Kann ich meine Frage nicht gelöst werden, einfach zu sagen, dass ich Benutzer und ihr Passwort in der Datenbank hinzufügen müssen (Wie geht das in VB? In dem obigen Code?) Zweitens ist, wie diese Anmeldeinformationen verwenden, um auf die Anwendung zuzugreifen über Webservice? – AbdulAziz