امنیت (WebPages Security)
در «امنیت Web Pages» با شیء «WebSecurity» آشنا می شویم. «احراز هویت (Authentication)» یعنی تشخیص کاربر واقعی. مثل کارت دانش آموزی هنگام ورود به مدرسه.
WebSecurity چیست؟
WebSecurity مجموعه ای برای حساب کاربری است. می تواند ورود، خروج، تغییر رمز، تأیید کاربر و نقش ها را مدیریت کند.
راه اندازی پایگاه داده WebSecurity
باید اتصال پایگاه داده را در _AppStart.cshtml مقداردهی کنی. این کار هر بار شروع سایت اجرا می شود.
@{
WebSecurity.InitializeDatabaseConnection(
"Users",
"UserProfile",
"UserId",
"Email",
true
);
}
نکته: مقدار true یعنی اگر جدول ها نبودند، خودکار ساخته شوند. اما خود دیتابیس باید وجود داشته باشد.
حفاظت صفحه و وضعیت ورود
می خواهی فقط کاربران واردشده صفحه را ببینند؟ از RequireAuthenticatedUser() استفاده کن. سپس نام کاربر را نمایش بده و امکان خروج بده.
@{
WebSecurity.RequireAuthenticatedUser();
}
@{
if (WebSecurity.IsAuthenticated) {
var name = WebSecurity.CurrentUserName;
<text>Welcome @name</text>;
}
}
@{
if (IsPost) {
WebSecurity.Logout();
}
}
<form method="post">
<button type="submit">Logout</button>
</form>
نمونه ورود ساده
با متد Login() می توانی کاربر را وارد کنی. یادت باشد ورودی ها را بررسی کنی.
@{
if (IsPost) {
var email = Request["email"];
var password = Request["password"];
var remember = Request["remember"] == "on";
var ok = WebSecurity.Login(email, password, remember);
if (!ok) {
<text>Login failed</text>;
}
}
}
<form method="post">
<input name="email" />
<input name="password" type="password" />
<label>
<input type="checkbox" name="remember" />Remember me
</label>
<button type="submit">Login</button>
</form>
سازگاری SimpleMembership
اگر خطای پیکربندی دیدی، در Web.config کلید enableSimpleMembership را فعال کن. این تنظیم، سیستم عضویت Web Pages را روشن می کند.
گام های عملی
- InitializeDatabaseConnection را در
_AppStartتنظیم کن. - فرم ورود را بساز و Login را صدا بزن.
- صفحات حساس را RequireAuthenticatedUser محافظت کند.
نکته: برای بازیابی رمز، از GeneratePasswordResetToken و ResetPassword استفاده کن. برای سیاست های ایمیل امن، به ایمیل Web Pages رجوع کن.
هشدار: توکن ها و گذرواژه ها را لاگ عمومی نکن. از HTTPS استفاده کن.
جمع بندی سریع
- WebSecurity ورود و امنیت را مدیریت می کند.
- راه اندازی در _AppStart انجام می شود.
- RequireAuthenticatedUser صفحات را قفل می کند.
- SimpleMembership را در Web.config فعال کن.