Bu makalemizde SQL Serverda fonksiyon ve procedure kullanarak MVC uygulamamiza login olma islemini gerçeklestirecegiz.

Web Api Login Olma

Bu makalemizde SQL Serverda fonksiyon ve procedure kullanarak MVC uygulamamiza login olma islemini gerçeklestirecegiz. Peki bu islem hangi durumlarda lazim olabilir. Bunun için senaryolar kurulabilir.

Web Uygulamamizdaki bir fonksiyonu belli zaman araliklariyla (Sql Job kullanarak) post edecegimiz bilgilerle çalistirma ihtiyaci duyabiliriz veya bir tabloya trigger yazarak bu tabloya kayit girildigi takdirde bu kayit bilgilerinin web uygulamamiza post etmemiz gerekebilir.

Örnek Yazilim Uzmanlarinin Notifies tablosu bu triggerlar sayesinde çalismaktadir. Bu tabloya kayit girildigi anda ilgili kategoriyi hangi kullanicilar takip ediyorsa o kullanicilara Web api ye baglanarak SignalR veya GCM yardimiyla bilgilendirme gönderilmektedir. 

Bir baska örnekteyse Takvim uygulamasinda kullanicilarin hangi tarih ve saatte toplantilari var ise SQL Job lar kullanarak toplantisi olan kullanicilar bilgilendirilebilir. 

Gelelim Login islemini gerçeklestirebilecegimiz fonksiyonumuza. Bu fonksiyonumuzda parametre olarak disaridan baglanmasi gereken URL, kullanici kodu ve sifresini göndermemiz gerekiyor. Geriye de JSON olarak AccessToken i alacagiz.

ALTER function [dbo].[GetHttpLogin]
(
	@url varchar(8000),
	@UserName varchar(max),
	@Password varchar(max)
)
returns varchar(8000)
as
BEGIN
	DECLARE @win int 
	DECLARE @hr  int 
	DECLARE @text varchar(8000)
	
	EXEC @hr=sp_OACreate "WinHttp.WinHttpRequest.5.1",@win OUT 
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
	
	EXEC @hr=sp_OAMethod @win, "Open",NULL,"GET",@url,"false" -- Get Methodunu kullanacagimiz belirtiyoruz.
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
	
	Exec @hr=sp_OAMethod @win, "setRequestHeader", null, "Content-Type", "application/json;charset=UTF-8" -- Content Type JSON olarak ayarliyoruz.
	
	declare @PostData nvarchar(max)
	Select @PostData = "userName=" + @UserName + "&password=" + @Password + "&grant_type=password" -- Gönderecegimiz Kullanici Kodu ve sifre bilgilerini bir degiskene atiyoruz. 
	EXEC @hr=sp_OAMethod @win,"Send",NULL,@PostData -- Ardindan istenen url e bilgileri gönderiyoruz. 
    --Hata kontrolü yapiyoruz. 
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
	
	EXEC @hr=sp_OAGetProperty @win,"ResponseText",@text OUTPUT -- Geri dönen bilgilerin @text degiskenine atmasini sagliyoruz.
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
	
	EXEC @hr=sp_OADestroy @win 
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 
	
	RETURN @text --@text bilgisini geri return ediyoruz. 
END

Fonksiyonumuz olusturduk. Bu fonksiyonu stored procedure içerisinde asagidaki gibi kullanabiliriz. 

Declare @ResultData nvarchar(max)
Select @ResultData = dbo.fn_GetHttpLogin "http://127.0.0.1/token","kullanicikodu", "sifre"

Select @ResultData

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder