Перейдите к файлу Web.Config для вашего приложения (убедитесь, что он является основным, а не к Web.Config в представлении), отметьте <authentication mode="Forms">
, если вы его видите, затем добавьте такие строки:
<authentication mode="Windows"/>
<identity impersonate="true"/>
<authorization>
<allow roles="DOMAIN\PersonnelGroup" />
<allow users="DOMAIN\jdoe"/>
<deny users="*"/>
</authorization>
Вам не обязательно включать раздел <authorization>
, но это полезно, если вы хотите разрешить доступ для определенных групп и пользователей и запретить всем остальным. Когда вы используете IE, учетные данные передаются автоматически. Вы можете проверить это, напечатав имя пользователя на ваш взгляд:
@HttpContext.Current.User.Identity.Name
Если вы откроете свой сайт с помощью Firefox или любого другого браузера, кроме IE, он запросит у вас имя пользователя и пароль, поскольку он не передает автоматически учетные данные (хотя, очевидно, вы можете заставить Firefox передавать учетные данные, как Dan Diplo). упоминает выше).
Если вы хотите передать эти учетные данные на другой сервер, такой как SQLServer, из моего опыта становится больше головной боли, потому что вы столкнулись с проблемой двойного прыжка. Единственный известный мне обходной путь - разместить IIS и SqlServer на одном сервере или иметь логин для вашей интрасети, чтобы у вас было имя пользователя и пароль для передачи в SQLServer.