2

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

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

Просто глядя на некоторые общие подачи обратно на требования ниже с «Да, поставщика членства хорошо подходит» или «Нет, ты стучал квадратный колышек в круглое отверстие»

Требования

  1. Пользователь может потребоваться для входа в систему с «Mobile Number» (имя пользователя) & «Pin» (пароль) Это подходит очень хорошо, так как они уже подписали и подтвердили с SMS и удовлетворяет ValidateUser(string username, string password) Реализация метода

  2. Пользователь может потребоваться для входа только с «Мобильным номером». В этом случае мы не беспокоимся о проверке личности на нашей стороне. Это уменьшает количество шагов для пользователя, и проверка выполняется конкретным оператором, когда мы пытаемся их выставить. (Операторы могут подтвердить, что введенный номер мобильного телефона совпадает с телефонной трубкой, когда он попадает на сайт оплаты оператора) ... поэтому, хотя у пользователей есть пароль, нам нужно как-то обмануть поставщика членства и позволить им с пустым паролем.

  3. Пользователь не имеет права для входа. В этом случае мы можем прозрачно отказываться от пользователя на веб-странице специального сетевого оператора, и мы получим номер мобильного телефона в заголовках, когда они будут прозрачно возвращаться к нам. В этом случае нам нужно будет программно взять это число из заголовков, выполнить регистрацию от их имени в коде позади (снова без каких-либо выводов/пароля), и пользователь будет магически авторизован.

Требование 2 & 3 бит нечетный. У нас есть, по сути, 3 разных механизма входа, которые должен удовлетворить один поставщик членства. Поступил

  • пользователя Мобильный & Пользователь Поступил Pin
  • Пользователь Поступил только мобильный (код позади, я полагаю, чтобы удовлетворить требование штырьковый)
  • Полностью прозрачный Войти (код позади, чтобы сделать весь процесс входа)

У кого-либо есть комментарии/комментарии к обратному сообщению выше или есть какие-либо рекомендации относительно любой причудливой реализации поставщика членства, которую вы делали в прошлом.

+0

у меня есть почти аналогичная проблема, как к вашему .. если вы можете предложить мне хотите сделать => Q:. Я занимаюсь разработкой пользовательского поставщика членства, я позволить пользователю войти в систему с помощью своего EMAILID, как имя пользователя, но MemberhipProvider.ValidateUser() принимает имя пользователя в качестве аргумента (и у моего пользователя есть имя пользователя, просто для показа в их профиле). И что же мне делать. В настоящее время я внедрил ValidateUser(), чтобы получить адрес электронной почты в этом аргументе .. но он не выглядит как хорошая практика .. так что вауть ​​делать ??? –

ответ

1

Я думаю, что это может сработать. Мы делаем № 3 на одном из наших сайтов. Вот кусок кода, который мы используем, чтобы позаботиться об этом. Чтобы использовать это, создайте страницу входа (transparentlogin.aspx или что-то подобное), убедитесь, что файл web.config разрешает анонимный доступ к этой странице и помещает такой код в функцию page_load для прозрачного журнала.ASPX страница:

const string specialpassword = "ThisIsOurSpecialPasswordForBehindTheScenesLogin"; 

if (MobileNumberFoundInHeader()) 
{ 
    string username = GetMobileNumberFromHeaders(); 
    // Authenticate the user behind the scenes 
    System.Web.Security.FormsAuthentication.SetAuthCookie(username, false); 
    System.Web.Security.FormsAuthentication.Authenticate(username, specialpassword); 
} 
else 
{ 
    throw new Exception ("Mobile Number Missing"); 
} 

Затем в функции ValidateUser в MembershipProvider, убедитесь, что вы делаете чек, как это:

public override bool ValidateUser(string username, string password) 
{ 
const string specialpassword = "ThisIsOurSpecialPasswordForBehindTheScenesLogin"; 

bool ValidationSuccess = false; 

// If the password being passed in is the right secret key (same 
// for all users), then we will say that the password matches the 
// username, thus allowing the user to login 
if (password == specialpassword) 
{ 
    ValidationSuccess = true; 
} 

if (DoStandardUsernamePasswordVerification() == true) 
{ 
    ValidationSuccess = true; 
} 

return ValidationSuccess; 
} 

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

Tim

+0

приветствует ... да, это почти то, к чему я пришел. Re: «Операторы» ... Я имею в виду операторов мобильной телефонной сети ... например. AT & T, Vodafone, T-Mobile и т. Д. ... –

Смежные вопросы