می خواهم یک برنامه وب را با فرم ورود به سیستم ایجاد کنم و با حساب Active Directory تأیید اعتبار کنم. کاربران ما گاهی اوقات از دستگاهی استفاده می کنند که کاربران قادر به ورود به سیستم نیستند ، بنابراین ما نمی خواهیم از [احرازهویتویندوز استفاده کنیم.
نحوه تنظیم آن در حال حاضر این است:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
عمومی ActionResult ورود (ورودViewModel vm)
{
// برخی جزئیات را برای خوانایی حذف کرد
اگر (principalContext.ValidateCredentials (vm.username ، vm.password))
{
userPrincipal = UserPrincipal.FindByIdentity (principalContext، IdentityType.SamAccountName، vm.username)؛
}
اگر (userPrinciipal! = صفر)
{
TempData ["username"] = userPrincipal.LogonName؛
بازگشت RedirectToAction ("PageForValidatedUser")؛
}
}
اقدام عمومیResult PageForValidatedUser ()
{
if (TempData ["username"] == تهی)
{
بازگشت RedirectToAction ("ورود")؛
}
string username = TempData ["username"] .ToString ()؛
ValidatedUser vu = GetUserInfoByUsername (نام کاربری)؛
ViewModel vm = SetupViewModel (vu)؛
Return View (vm)؛
}
}
و در web.config
و در IIS
، آن را به تأیید هویت ناشناس تنظیم کردم.
تأیید هویت با این روش "خوب کار می کند" ، اما من نمی دانم اگر با تأیید اعتبار فرم
(مانند این یا این) با استفاده از موارد زیر ، امنیت بیشتری داشته باشید. ویژگی ها:
FormsAuthentication.SetAuthCookie
for loginFormAuthentication.SignOut
for logoutloginUrl
and[Authorize]