Автоматически назначать токен аутентификации в .NET - PullRequest
0 голосов
/ 11 апреля 2011

Я реализовал проверку подлинности с помощью поставщика членства .NET, но я также хочу, чтобы пользователи могли входить через Facebook.После аутентификации в Facebook я хочу автоматически назначить токен аутентификации .NET пользователю.У меня есть HttpModule, который обнаруживает аутентификацию FB, но все мои попытки вручную создать токен аутентификации закончились неудачей.

Я пытался

  • FormsAuthentication.SetAuthCookie
  • FormsAuthentication.GetAuthCookie + Response.Cookies.Add
  • new FormsAuthenticationTicket(...) а-ля MSDN
  • В HttpModule против Page

Плюс несколько других отчаянных попыток.Ничто не похоже на работу.Как это сделать?

Ответы [ 4 ]

1 голос
/ 11 апреля 2011
FormsAuthentication.Initialize();
// Create a new ticket used for authentication
FormsAuthentication.SetAuthCookie(UserName.Text, false);
// Create a new ticket used for authentication
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
   1, // Ticket version
   UserName.Text, // Username associated with ticket
   DateTime.Now, // Date/time issued
   DateTime.Now.AddMinutes(30), // Date/time to expire
   false, // "true" for a persistent user cookie
   "Admin", // User-data, in this case the roles
   FormsAuthentication.FormsCookiePath);// Path cookie valid for

// Encrypt the cookie using the machine key for secure transport
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
   FormsAuthentication.FormsCookieName, // Name of auth cookie
   hash); // Hashed ticket

// Set the cookie's expiration time to the tickets expiration time
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;

// Add the cookie to the list for outgoing response
Response.Cookies.Add(cookie);
1 голос
/ 11 апреля 2011

После того, как вы SetCookieAuth, вам нужно выполнить перенаправление, чтобы дать HttpModule возможность сработать и установить свойство HttpContext.User.

1 голос
/ 11 апреля 2011

Предлагаемый способ использования WIF

0 голосов
/ 22 апреля 2011

Оказывается, кто-то еще зарегистрировал другой модуль в решении, которое мешало HttpRequest и элементам аутентификации. После того, как я избавился от этого, FormsAuthentication.SetAuthCookie(...) работал нормально.

Спасибо всем за помощь.

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