2012-05-18 3 views
0

необходимо решить вопрос авторизации. У меня уже есть четыре таблицы в моей базе данных с именем: 1. Usermaster 2.Roles 3.RoleMenu 4.Menuпользовательское разрешение и защита страниц в asp.net

Я реализовал это и его прекрасно работает. Моя единственная проблема теперь в том, что аутентифицированный пользователь может просматривать несанкционированную страницу, просто введя URL-адрес страницы в браузере.

Любые полезные идеи, помимо аутентификации форм и доступа на уровне папок?

+0

В чем проблема с аутентификацией форм? Он хорошо протестирован и прочен и используется многими многими сайтами, включая этот. –

+0

моей основной проблемой с проверкой подлинности форм является производительность и настройка. Любые идеи о том, как это можно применить в этом контексте? – froodo

+0

Что касается проверки подлинности форм, вы обнаружите, что выполняете плохо и нестандартно? –

ответ

0

У меня был проект, подобный этому, и я не могу найти код в любом месте, как это было довольно давно. Тем не менее, я помню помещение. Что я сделал, так это то, что я установил ключ в webconfig, который имел доступ к именам пользователей в строке с конвейерами. За кодом я бы вытащил этот ключ, а также пользователь, пытающийся получить доступ к этой странице. Затем я бы поискал строку и попытался совместить пользователя. Если совпадение было найдено, страница загрузится, если совпадение не будет найдено, оно перенаправит их на страницу, сообщив им, что у них нет доступа, и с кем связаться для запроса доступа. Я буду искать код и редактировать, если найду его.

EDIT

WebConfig

<appSettings> 
    <add key="Users" value="user1|user2|user3|..." /> 
</appSettings> 

Эта часть проходит над

Для страницы .aspx.vb

Dim DomainUserName() As String = Request.ServerVariables("LOGON_USER").Split("\") 
    Dim UserName As String = DomainUserName(1) 

    Dim Users() As String = ConfigurationManager.AppSettings("Users").ToString.Split("|") 

    Dim isAllowedAccess As Boolean = False 

    For i As Integer = 0 To Users.Count - 1 
     If UserName = Users(i) Then 
      isAllowedAccess = True 
      Exit For 
     End If 
    Next 

    If isAllowedAccess = False Then 
     Response.Redirect("Default.aspx") 
    End If 

По сути, наши логины являются домен \ имя пользователя так, что я «Выполнение - это извлечение только имени с помощью разделения. Затем я заполняю принятые пользователи в массиве, расщепляющемся на трубе, и перебираю их, ища совпадение. когда совпадение найдено, оно позволяет им получить доступ, если совпадение не найдено, они перенаправляются обратно на главную страницу.

+0

проверка подлинности форм теперь является жизнеспособной альтернативой. – froodo

Смежные вопросы