Как настроить роль пользователя sessioning, местоположение, в моем ASP.NET страница (без ASP.NET идентичность).
У меня есть приложение webform на C#, использующее SSO (Single Sign On). Администратор должен зарегистрировать учетную запись электронной почты пользователя, и как только пользователь зарегистрирован в базе данных, он может войти в приложение со своим паролем SSO.
Моя проблема здесь заключается в том, что как только они смогут войти на сайт, я хочу получить их роль и код местоположения их организации.
Я сохранил их имя пользователя в сеансе.
Имя пользователя (имя Пользователя по электронной почте), который хранится в sec_user базе.
Их местоположение и роль хранятся в таблице базы данных sec_role.
<pre lang="c#">
string path = "LDAP://kemenkeu.go.id"; public string HakAkses { get { return (string)Session["HakAkses"]; } set { Session["HakAkses"] = value; } } public bool AuthenticateUser(string path, string user, string pass) { //Return True DirectoryEntry de = new DirectoryEntry(path, user, pass, AuthenticationTypes.Secure); try { DirectorySearcher ds = new DirectorySearcher(de); ds.FindOne(); return true; } catch { return false; } } protected void btn_entrance_Click(object sender, EventArgs e) { if (AuthenticateUser(path, txt_username.Text, txt_password.Text) == true) { string CS = ConfigurationManager.ConnectionStrings["nikita_app"].ConnectionString; using (SqlConnection sfe = new SqlConnection(CS)) { using (SqlCommand cbn = new SqlCommand("xp_otorisasi_user", sfe)) { cbn.CommandType = CommandType.StoredProcedure; SqlParameter paramUsername = new SqlParameter("@user_email", txt_username.Text); cbn.Parameters.Add(paramUsername); sfe.Open(); int returnCode = (int)cbn.ExecuteScalar(); if (returnCode == 1) { Response.Redirect("accueil.aspx"); Session["userid"] = txt_username.Text; } else { lbl_info.Text = "Daftarkan Terlebih Dahulu Username Anda ke Admin PK"; } } } } else { lbl_info.Text = "Username/Password anda salah"; } }
Это мой код c#, а вот моя хранимая процедура
CREATE PROCEDURE [dbo].[xp_otorisasi_user] @user_email varchar(60) AS BEGIN DECLARE @Count AS INT SELECT @Count = COUNT (user_email) from sec_user WHERE [user_email]=@user_email IF(@Count=1) BEGIN SELECT 1 AS ReturnCode END ELSE BEGIN SELECT -1 AS ReturnCode END END
Я хочу запросить userrole и userlocation из базы данных
и получить их в сеансе (в asp.net страница)
Что я уже пробовал:
У меня есть попытка сделать выбор внутри
Если (@Count=1)
НАЧАТЬ
Выберите user_role, user_location из sec_role, где user_email=@user_email
Выберите 1 в качестве кода возврата
КОНЕЦ
Но я не знаю, как получить user_role и user_location, которые были выбраны для моего asp.net веб-страница