Как я позже выясню, режим аутентификации Windows прекрасно работает в среде интрасети.Я решил включить этот режим в своей конфигурации IIS при разработке, и чтобы каждая страница автоматически идентифицировала пользователя по его сетевому логину и указывала ему (или разрешала / запрещала доступ к соответствующим страницам).Имейте в виду, что мое решение работает ТОЛЬКО в интрасети / если вы находитесь на контроллере домена.
Вот соответствующий Web.config
<system.web>
<authentication mode="Windows" />
<identity impersonate="false" />
</system.web>
Самый простой подход, который я думаю, это поискимя пользователя в базе данных и найдите связанную с ним роль / группу, а затем оцените, должна ли эта роль предоставить им доступ к запрашиваемой странице в коде VB.Вот как получить имя пользователя сети пользователя:
' While logged into your intranet will return "DOMAIN\username"
Dim username As String = Page.User.Identity.Name
Вот пример кода VB.NET, который можно использовать для аутентификации (автоматически) и предоставления доступа к данной странице (не точно к коду, который я использовал, простообразец).
Dim role As String
Using con As New SqlConnection(ConfigurationManager.ConnectionStrings("conString").ConnectionString)
Dim query As New SqlCommand("select top (1) Role from Users where Username like '" + username + "'", con)
con.Open()
role = query.ExecuteScalar().ToString
End Using
If StrComp(role, "Admin") = 0 Then
welcomeLabel.Text = "Welcome! You may enter"
Else
HttpContext.Current.Server.Transfer("/Kick.aspx")
End If
Я надеюсь, что некоторые люди находят это полезным.Я потратил бесчисленные часы на решение, почти идентичное этому.
Приветствия;)