מדריך ASP.NET – אבטחה: בדיקת הרשאות בקוד
במדריך זה נראה כיצד אנחנו בודקים הרשאות של משתמש בקוד.
הכנה
על-מנת לעבוד עם הרשאות, נצטרך להגדיר את ה-Membership Provider כפי שמוסבר במאמר מדריך ASP.NET – אבטחה: הגדרת משתמשים וקבוצות.
נוסיף למערכת שלנו דרך כלי הניהול Role בשם Admin, כפי שמוסבר במאמר מדריך ASP.NET – אבטחה: הגדרת משתמשים וקבוצות.
נוסיף דף למערכת שלנו ונקרא לו PermissionCheck.aspx. נוסיף לדף הזה שני Labels, לראשונה נקרא lblIsAuthenticated ולשני נקרא lblIsAdmin.
הכיתוב של הדף יהיה כך:
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="PermissionCheck.aspx.cs"
Inherits="Demos.PermissionCheck" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label runat="server" ID="lblIsAuthenticated" />
<br />
<asp:Label runat="server" ID="lblIsAdmin" />
</div>
</form>
</body>
</html>
בדיקה האם המשתמש מחובר
הקוד הבא בודק האם המשתמש מחובר:
bool isAuthenticated = Page.User.Identity.IsAuthenticated;
בדיקה האם המשתמש הוא ב – Admin Role
הקוד הבא בודק האם המשתמש הוא ב – Admin Role
bool isAdmin = Page.User.IsInRole("Admin");
שיקוף התוצאות בדף
נכתוב ב – Labels את תוצאות הבדיקות. ניקח את שני המשתנים הבוליאנים ולפיהם נקבע מהו הטקסט שיהיה ב – Labels.
if (isAdmin)
lblIsAdmin.Text = "User is admin";
else
lblIsAdmin.Text = "User is not admin";
if (isAuthenticated)
lblIsAuthenticated.Text = "User is authenticated";
else
lblIsAuthenticated.Text = "User is not authenticated";
נציג כעת את הקוד במלואו.
public partial class PermissionCheck : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
bool isAuthenticated = Page.User.Identity.IsAuthenticated;
bool isAdmin = Page.User.IsInRole("Admin");
if (isAdmin)
lblIsAdmin.Text = "User is admin";
else
lblIsAdmin.Text = "User is not admin";
if (isAuthenticated)
lblIsAuthenticated.Text = "User is authenticated";
else
lblIsAuthenticated.Text = "User is not authenticated";
}
}
עבור משתמש שאינו מחובר יתקבל המסך הבא:
עבור משתמש מחובר שאינו Admin יתקבל המסך הבא:
עבור משתמש Admin יתקבל המסך הבא:
תגובות בפייסבוק