0

Я работаю над проектом, который использует приложение 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(); 
    } 
} 
+0

Иметь собственный фильтр авторизации, который делает то, что вам нужно. –

+0

@WiktorZychla, пожалуйста, ознакомьтесь с обновлением и сообщите, если вы можете помочь дальше –

ответ

0

Вы можете реализовать собственный фильтр авторизации и украсить требуемый контроллер этим фильтром. Внутри настраиваемого фильтра. Авторизовать основной метод, проверить идентификатор Windows на свою базу данных и соответственно вернуть true/false.

https://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.authorizecore(v=vs.118).aspx