Я работаю над проектом, который использует приложение ASP.NET MVC, на котором есть страница, доступная только определенным пользователям. Используя проверку подлинности Windows, я хочу взять имя User.Identity.Name и проверить это в поле LogonID в моей таблице Users в базе данных. Если есть совпадение, тогда я хочу проверить, соответствует ли поле IsAdmin значение true, и если да, предоставите доступ к нужной странице.User Authentication User Authorization
Я довольно новичок в этом, поэтому мне было интересно, как мне это нужно?
UPDATE:
Так что я пытался использовать AuthorizeAttribute, который был предложен для меня, но я пришел через проблему.
Я использую базу данных SQL Server Compact без DBContext. Поэтому мне было интересно, как я буду писать свою сущность для доступа к базе данных?
public class AuthorizeAuthorAttribute : AuthorizeAttribute
{
//Entity to access Database
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (!isAuthorized)
{
return false;
}
string currentUser = httpContext.User.Identity.Name;
var userName = //Linq statement
string my = userName.ToString();
if (currentUser.Contains(my))
{
return true;
}
else
{
return false;
}
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
Иметь собственный фильтр авторизации, который делает то, что вам нужно. –
@WiktorZychla, пожалуйста, ознакомьтесь с обновлением и сообщите, если вы можете помочь дальше –