Как я могу использовать ASP.NET MembershipProvider для переноса данных сессий пользователей, хранящихся в файлах cookie, установленных ColdFusion? - PullRequest
0 голосов
/ 15 февраля 2011

Я работаю над добавлением нового веб-приложения на существующий веб-сайт. Мне было поручено написать веб-приложение в ASP.NET. Существующий сайт написан на ColdFusion. По большей части веб-приложение ASP.NET является полностью автономным, но ему необходимо взаимодействовать с кодом ColdFusion одним важным способом - если кто-то входит на сайт ColdFusion, мы не хотим, чтобы он приходил в систему. снова при посещении страницы ASP.NET.

Когда кто-то входит в систему на сайте ColdFusion, его имя пользователя сохраняется в файле cookie вместе с токеном для входа, который можно найти в нашей базе данных. Мой .NET немного заржавел, поэтому у меня возникают проблемы с визуализацией того, как код ASP.NET должен использовать эти данные. Я уже написал простой MembershipProvider, который можно использовать для входа / выхода из приложения ASP.NET с использованием данных в наших существующих таблицах базы данных, которые используются совместно с кодом ColdFusion.

Что я хотел бы знать, так это как я могу убедиться, что приложение ASP.NET обнаруживает файлы cookie, установленные приложением ColdFusion (я думаю, они будут отправлены на страницы ASP.NET, поскольку все размещено на один домен) и автоматически регистрирует пользователя, используя MembershipProvider и проверку подлинности с помощью форм, используя учетные данные, указанные в файле cookie? Я думаю, что поместить какую-то функцию проверки файлов cookie и войти в систему в файле Global.asax, настроить запуск каждой загрузки страницы для каждой страницы ... но это кажется неуклюжим. Кроме того, люди все еще используют файл Global.asax в любом случае? Я думал, что есть более современный метод .... Кроме того, как я могу вручную войти в систему, используя проверку подлинности с помощью форм и пользовательский поставщик членства? В настоящее время мой код позволяет пользователю входить в систему с помощью предоставленного элемента управления входом, но я не уверен, как войти в систему без необходимости что-либо предпринимать.

Заранее спасибо за любую помощь. Просматривая учебники MembershipProvider и документацию MSDN, мне кажется, что ответ должен смотреть мне в глаза, но по какой-то причине я просто не вижу его. Может быть, не достаточно кофе ....

Ответы [ 3 ]

1 голос
/ 17 февраля 2011

Не уверен, что это то, что вы ищете:

FormsAuthentication.SetAuthCookie("the username goes here",false); 

Ссылка

0 голосов
/ 15 февраля 2011

Если бы я подошел к этому, у меня была бы определенная страница, которая действует как связующее звено между уровнем CF и .NET. Эта страница будет реализовывать ваш бизнес-уровень и просто проверять, есть ли Cookie, если это так, прочитать его, выполнить поиск и войти в систему пользователя или какую-либо бизнес-логику, которую необходимо выполнить. Как бы вы выполнили вход в систему / аутентификацию, и все это на основе вашего кода входа / аутентификации.

Единственная ссылка, которую я могу предложить, это базовые файлы cookie в ASP.net

http://msdn.microsoft.com/en-us/library/aa289495(v=vs.71).aspx

Редактировать: нашел другую ссылку, которая может быть полезна. http://www.aspnettutorials.com/tutorials/network/cookies-csharp.aspx

0 голосов
/ 15 февраля 2011

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

Так, возможно, есть ли у вас способ поразить ваше приложение ASP.NET запросом входа в систему пользователя, когда вы входите в систему с помощью приложения CF? Возможно, у вас может быть iframe на странице, которую можно загрузить после завершения входа в систему CF, который содержит службу входа для приложения .NET?

Таким образом, вам не нужно беспокоиться о том, что один сервер приложений читает файлы cookie другого сервера приложений, вместо этого будет два набора файлов cookie, один для ASP и один для CF.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...