複数の役割とユーザーを格納できるSQLサーバーの構造が異なります(この場合、ユーザーは複数の役割を処理できます)。asp.netのユーザー役割に基づいて異なるコンテンツを管理する方法C#
ログインしているユーザーの役割に応じて、.aspxでコントロールを表示すると、表示するかどうか、ロールが処理するコントロールを有効にするかどうかを処理するのが疲れます。
私はすでに解決策を持っていますが、維持するのは難しいです。問題はクライアントが通常更新を随時求めていることです。
ユーザーの役割に応じて.aspxでコントロールを有効にするためのベストプラクティスは何ですか。
私の貧しい人々のための謝罪。
...
...
クライアントloged-では、私は彼が持っている役割を持つ別のボタンを表示する.aspxに入るたびに。たとえば、人物Aがロール1とロール2を持っている場合、ロール1とロール2のボタンが表示されます。フォームに入力するロールを選択できます。人物Bは、(例:ROL 3)一つだけROLを持っている場合、私はちょうど私が見て、フォームのすべてのコントロールでそれを比較するために、ラベルにROL番号を保存ROL 3.
protected void accesos()
{
try
{
bool acceso1 = false;
bool acceso2 = false;
bool acceso3 = false;
bool acceso4 = false;
int count = 0;
int intparse = -1;
if (FL.ValidaAcceso(int.Parse(Request.QueryString["IDSubForma"].ToString()), 3, ((clsUsuario)Session["clsUsuario"]).IDUsuario))
{
acceso1 = true;
count = count + 1;
}
if (FL.ValidaAcceso(int.Parse(Request.QueryString["IDSubForma"].ToString()), 2, ((clsUsuario)Session["clsUsuario"]).IDUsuario))
{
acceso2 = true;
count = count + 1;
}
if (FL.ValidaAcceso(int.Parse(Request.QueryString["IDSubForma"].ToString()), 1, ((clsUsuario)Session["clsUsuario"]).IDUsuario))
{
acceso3 = true;
count = count + 1;
}
if (FL.ValidaAcceso(int.Parse(Request.QueryString["IDSubForma"].ToString()), 4, ((clsUsuario)Session["clsUsuario"]).IDUsuario))
{
acceso4 = true;
count = count + 1;
}
if (count > 1)
{
intparse = lblAcceso.Text.Equals("") ? 0 : (Int32.TryParse(lblAcceso.Text, out intparse) ? intparse : 0);
if (intparse <= 0)
{
//IDENTIFICAR QUE BOTONES MOSTRAR
if (acceso1 == false)
{
wcFirmas.Visible = false;
btn1.Visible = false;
}
if (acceso2 == false)
{
wcFirmas.Visible = false;
btn2.Visible = false;
}
if (acceso3 == false)
{
wcFirmas.Visible = false;
btn3.Visible = false;
}
if (acceso4 == false)
{
wcFirmas.Visible = false;
btn4.Visible = false;
}
divMultipleAcceso.Visible = true;
divForma.Visible = false;
}
}
else if (acceso1 == true)
{
lblAcceso.Text = "3";
divForma.Visible = true;
cargarForma(txtNoLote);
}
else if (acceso2 == true)
{
lblAcceso.Text = "2";
divForma.Visible = true;
cargarForma(txtNoLote);
}
else if (acceso3 == true)
{
lblAcceso.Text = "1";
divForma.Visible = true;
cargarForma(txtNoLote);
}
else if (acceso4 == true)
{
lblAcceso.Text = "4";
divForma.Visible = true;
cargarForma(txtNoLote);
}
else
{
divForma.Visible = false;
Master.MostrarMsn("El usuario no cuenta con privilegios de acceso.", 0);
return;
}
}
catch (Exception ex) { Master.MostrarMsn(ex.Message, 0); }
}
のためのコンテンツをロード私がそれを表示する必要があるかどうか。
if(lblAcceso.Text.Equals("2"))
問題は、私は、この形態、(例えば、ROL 5)に余分ROLを追加した場合、私は、コードを変更する必要があり、次のとおりです。そして、私のような何かをします。目標はできるだけコードを変更しないことです。
これまでのコメントありがとうございました。
これまでに何を試しましたか?解決策を見つけるために共有できるコードがありますか? – gattsbr
これは多くの可能な解決法ではかなり広範な質問です... – VDWWD
あなたは今あなたが現在持っているものを見ることなく、より良い解決策について助言することはできません。何らかの意味のある回答が必要な場合は、このコードを含めてください。 – trailmax