powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Forms Authentification и Роли.
2 сообщений из 2, страница 1 из 1
Forms Authentification и Роли.
    #34012201
Boa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boa
Гость
Доброго времени суток.
Возникла проблемка у меня.
Аутентификация на основе форм, плюс пользователь является членом группы.
Так вот методо User.IsInRole("Группа") возврасчает false на следующей странице после аутентификации.
Ниже код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
На Login.aspx
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim _login As New MAPLibrary.Login(Application("ConnectionString"))
        If _login.Login(Me.UserName.Text, Me.Password.Text) Then            
            Session("UserCode") = _login.LoginCode
            Dim _authTicket As New System.Web.Security.FormsAuthenticationTicket( 1 , Me.UserName.Text, DateTime.Now, DateTime.Now.AddMinutes( 20 ), True, _login.LoginType)

            Dim _encryptedTicket As String = FormsAuthentication.Encrypt(_authTicket)
            Dim _authCookie As New HttpCookie(FormsAuthentication.FormsCookieName, _encryptedTicket)
            HttpContext.Current.Response.Cookies.Add(_authCookie)

            Dim _id As New System.Web.Security.FormsIdentity(_authTicket)
            Dim _roles() As String = Split(_login.LoginType)
            HttpContext.Current.User = New System.Security.Principal.GenericPrincipal(_id, _roles)

            'If HttpContext.Current.User.IsInRole("Клиент") Then Response.Redirect("Customer/Default.aspx") ' Эта строчка отрабатывает

            Response.Redirect(FormsAuthentication.GetRedirectUrl(Me.UserName.Text, False))
        Else
...
        End If    
    End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Default.aspx - Ни одно их этих условий (Роль = Клиент должно быть) не срабатывает
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If Session("UserCode") = "" Then Response.Redirect("Login.aspx")
        If HttpContext.Current.User.IsInRole("Клиент") Then Response.Redirect("Customer/Default.aspx")
        If HttpContext.Current.User.IsInRole("Офис") Then Response.Redirect("Region/Default.aspx")
        
    End Sub

В Application_AuthenticateRequest код не писал.
...
Рейтинг: 0 / 0
Forms Authentification и Роли.
    #34012607
Boa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boa
Гость
Перенос кода в Application_AuthenticateRequest решил проблему =)
Код: plaintext
1.
2.
3.
4.
Dim _id As New System.Web.Security.FormsIdentity(_authTicket)
Dim _roles() As String = Split(_login.LoginType)
HttpContext.Current.User = New System.Security.Principal.GenericPrincipal(_id, _roles)

...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Forms Authentification и Роли.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]