Членство ASP.NET: как установить пользователя, как вошел в систему

Вы можете создать плагин докера с по vieux / sshfs на вашем хосте и отобразить его на другой хост.

Использование драйвера тома

Когда вы создаете том с помощью Docker Volume create, или когда вы запускаете контейнер, который использует еще не созданный том, вы можете указать драйвер тома. В следующих примерах используется драйвер тома vieux / sshfs, сначала при создании отдельного тома, а затем при запуске контейнера, создающего новый том.

Начальная настройка

В этом примере предполагается, что у вас есть два узла, первый из которых является хостом Docker и может подключаться ко второму с помощью SSH.

На хосте Docker установите плагин vieux / sshfs:

$ docker plugin install --grant-all-permissions vieux/sshfs

Создание тома с помощью драйвера тома В этом примере указывается пароль SSH, но если на двух хостах настроены общие ключи, вы можете опустить пароль. Каждый драйвер тома может иметь ноль или более настраиваемых параметров, каждый из которых указывается с помощью флага -o.

$ docker volume create --driver vieux/sshfs \
  -o sshcmd=test@node2:/home/test \
  -o password=testpassword \
  sshvolume

docker-compose setup

volumes:
  - type: volume
    driver: vieux/sshfs
    source: sshvolume
    target: /target

29
задан Govinda Rajbhar 15 May 2014 в 05:43
поделиться

4 ответа

Поместите это в Login1_Authenticate перед вызовом Response.Redirect ("/ admin / default.aspx");

FormsAuthentication.SetAuthCookie("username", true);
39
ответ дан 28 November 2019 в 01:39
поделиться

Попробуйте перенести свой код и предложение Громера на событие LoggedIn.

protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        if(Membership.ValidateUser(Login1.UserName, Login1.Password))
        {
            FormsAuthentication.SetAuthCookie(Login1.UserName, true);
            Response.Redirect("/admin/default.aspx");
        }

    }

РЕДАКТИРОВАТЬ: Как сказал Громер, делайте это только в том случае, если вам нужно выполнить какой-то бизнес-код после того, как пользователь вошел в систему и до того, как он / она перенаправлен.

РЕДАКТИРОВАНИЕ РЕДАКТИРОВАНИЕ: Visual Studio описывает событие Authenticate как «вызванное для аутентификации пользователя», что означает, что пользователь не аутентифицирован до вызова события. Таким образом, вы не можете подтвердить, что пользователь вошел в систему, потому что он еще не прошел аутентификацию.

6
ответ дан Matthew Jones 28 November 2019 в 01:39
поделиться

Хотя я и не знаю, сколько это поможет, это стандартный код, который я использую, чтобы различать пользователей с правами администратора или обычных пользователей. Прекрасно работает для меня.

На вашей странице входа в систему, вероятно, онкликом создайте пользовательский объект и вызовите некоторую функцию с этим кодом (UserRole - это Enum с вашими ролями):

If admin Then 
            If role = UserRole.Admin Then
                RedirectFromLoginPage(username & "|" & userid, False)
                Return True
            Else
                Return False
            End If
        Else
            If String.IsNullOrEmpty(Current.Request.QueryString("ReturnUrl")) Then
                SetAuthCookie(username & "|" & userid, True)
            Else
                RedirectFromLoginPage(username & "|" & userid, True)
            End If
            Return True
        End If

В вашем web.config:

<location path="admin">
    <system.web>
        <authorization>
            <allow roles="Admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
.....
<system.web>
<authentication mode="Forms">
        <forms loginUrl="/registration/login.aspx" timeout="129600"/>
    </authentication>
    <authorization>
        <allow users="*"/>
    </authorization>
</system.web>

... и если вы действительно хотите, на вашей странице Global.asax:

    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
    If Request.IsAuthenticated Then
''
'get your roles for the current user'
''
 Dim userRoles() As String = Split(roles, "|")
        'Add the roles to the User Principal'
        HttpContext.Current.User = New GenericPrincipal(User.Identity, userRoles)
    End If
End Sub
1
ответ дан Jason 28 November 2019 в 01:39
поделиться

Громер знает ответ, но вы также можете прочитать эту статью MSDN, чтобы узнать больше:

http://msdn.microsoft.com/en-us/library/ms998347 .aspx

2
ответ дан 28 November 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: