Как я могу получить ТЕКУЩЕЕ ИМЯ ПОЛЬЗОВАТЕЛЯ в членстве asp.net 2008

AFAIK, у nexus-staging-maven-plugin нет пользовательского свойства для отсоединения или игнорирования определенных артефактов.

Вы можете написать свой собственный плагин, который берет проект Maven и удаляет из него определенный артефакт.

11
задан 10 April 2009 в 14:44
поделиться

4 ответа

User.Identity.Name

Пользователь является собственностью страницы. Если вам нужен доступ к нему в другом месте, вы можете использовать:

HttpContext.Current.User.Identity.Name
28
ответ дан 3 December 2019 в 01:45
поделиться

Context.User.Identity.Name

3
ответ дан 3 December 2019 в 01:45
поделиться

вы можете использовать метод Membership.GetUser (), описанный здесь:

http://msdn.microsoft. com / en-us / library / system.web.security.membership.getuser.aspx

также, если вы получите MembershipUser, вы также можете получить 'ProviderUserKey', который уникально идентифицирует пользователя, возможно, используя его в качестве вашего FK для ваших таблиц, таким образом, ваш пользователь может обновлять свое имя пользователя без необходимости изменять все ключи в ваших таблицах.

2
ответ дан 3 December 2019 в 01:45
поделиться

Существует несколько решений (ни одно из них не является идеальным)

1. Используйте Kaazing.

Они уже его поддерживают. Это открытый исходный код, но у них есть какая-то двойная лицензия , поэтому лучше проверить, можно ли использовать для вашего проекта.

2. Объединение js.io и APE (Ajax Push Engine)

APE - это структура комет, но они недавно начали поддерживать Websockets. На их веб-сайте (раздел «APE как прокси») они говорят, что он может запускать js.io библиотеки, которые включают xmpp.js, поэтому их объединение может работать.

3. Используйте Caucho

Это рамка на основе Java, похожая на APE, которая обеспечивает одну остановку в магазине Comet решения, и они, похоже, поддерживают как XMPP и WebSockets

4. Попросите команду Strophe поддержать WebSocket.

Strophe выполняет XMPP через BOSH (двунаправленные потоки через синхронный HTTP), но существует также обсуждение поддержки WebSockets .

Джек Моффитт (основной разработчик и автор упомянутой выше книги), похоже, заинтересован в WebSockets, но нам нужно дать более убедительные рассуждения о том, почему они должны поддерживать WebSocket по BOSH. Если у вас есть хорошие ответы, пожалуйста, присоединяйтесь к протектору.

Я только что попробовал их пример xmpp, bosh, strophe echobot , который хорошо сработал. Вы также можете попробовать его, чтобы посмотреть, соответствует ли он вашим требованиям или нет.

Для # 2 и # 3, они говорят, что они оба поддерживают xmpp и веб-сайты, но не уверены, если они работают вместе.

Для какого приложения вы думаете об использовании XMPP и WebSockets?

Ниже приводятся предложения по альтернативным вариантам.

  • Если вы хотите иметь эквивалентную функциональность для присутствия, чата, чата, вы можете создать Wave Gadget или Robot, а затем открыть для себя с помощью Wave Embed API (мертвая ссылка, сохраненная в исторических целях). Волна фактически построена поверх XMPP.
  • Если вы просто ищете возможность передачи сообщений с очень низкой задержкой, вы можете попробовать AMQP .
  • Если вы ищете гораздо более простую потоковую передачу сообщений, вы можете просто передать файл unix, как я показал здесь .

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

-121--1305516-

Я никогда не был в восторге от этого решения. Для одного, это не обязательно очевидно, где все такие методы в коде, для другого, я просто не люблю синтаксис. Я хочу использовать. когда я вызываю методы!

И я хочу использовать $! --- & при вызове методов! Разберись. Если вы собираетесь написать код C++, придерживайтесь условных обозначений C++. И очень важным соглашением C++ является предпочтение функций, не являющихся членами, когда это возможно.

Существует причина, по которой гуру C++ рекомендуют это:

Это улучшает инкапсуляцию, расширяемость и повторное использование. ( std::сортировка может работать со всеми парами итераторов , поскольку не является членом ни одного класса итераторов или контейнеров. И как бы вы ни расширяли std:: Последовательностью , вы не можете ломать его, пока придерживаетесь не-членских функций. И даже если у вас нет доступа к исходному коду класса или нет разрешения на его изменение, вы все равно можете расширить его, определив функции, не являющиеся членами класса)

Лично я не вижу точки в вашем коде. Разве это не намного проще, удобнее для чтения и короче?

string OperateOnString( float num, string a, string b )
{
    string nameS;
    Format(nameS, "%f-%s-%s", num, a.c_str(), b.c_str() );
    return nameS;
}

// or even better, if `Format` is made to return the string it creates, instead of taking it as a parameter
string OperateOnString( float num, string a, string b )
{
    return Format("%f-%s-%s", num, a.c_str(), b.c_str() );
}

Когда в Риме, делайте как римляне, как говорится. Особенно , когда у римлян есть веские причины поступать так, как у них есть. И особенно когда ваш собственный способ сделать это на самом деле не имеет ни одного преимущества. Он более подвержен ошибкам, сбивает с толку людей, читающих ваш код, не является идиоматическим, и это просто больше строк кода, чтобы сделать то же самое.

Что касается вашей проблемы, трудно найти функции, не являющиеся членами, которые расширяют последовательности , поместите их в пространство имен, если это связано. Для этого они и нужны. Создайте пространство имен StringUtil или что-то подобное и поместите их туда.

-121--3765849-

Изменение ответа Фредди при использовании MVC - пришлось использовать:

HttpContext.User.Identity.Name

Небольшое изменение, но я подумал, что опубликую его в случае, если кто-либо еще попытается сделать это в MVC попадет в ту же загвоздку.

4
ответ дан 3 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

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