51Degrees Mobile Redirect с формамиАутентификации

У меня есть проект MVC (.net fw 4.5) с аутентификацией форм, настроенной в web.config. При просмотре с настольных устройств все работает отлично; пользователь перенаправляется на страницу входа в систему. Я установил "51Degrees" из "Nuget" и настроил конфигурацию, как указано на их сайте. Кроме того, я добавил 3 мобильных представления в папку Home с именами: Index.iphone, Index.android и Index.mobile, которые я хочу, чтобы пользователь перенаправлял их на них при просмотре с мобильных / планшетных устройств (зависит от типа устройства)

Моя проблема заключается в том, что при входе в систему с мобильных / планшетных устройств сначала вызывается окно входа в систему, а после успешного входа всегда вызывается Index.mobile. Я не хочу, чтобы загружалось представление входа в систему, но вместо этого я хотел бы показать соответствующее представление (в зависимости от типа устройства), которое имеет соответствующую ссылку для загрузки приложения (Google Play / App Store).

Пожалуйста, помогите.

Я удалил раздел перенаправления в файле конфигурации 51Degrees. HttpModule 'Detector' существует в моей веб-конфигурации (Nuget добавил это автоматически при установке в 51 градус). У меня есть файл.dat в моей папке App_Data. Я добавил параметры DefaultDisplayMode для Android, iPhone и мобильных устройств (как указано на сайте 51Degrees) в Application_Start в файле Global.asax.

Что мне не хватает?

1 ответ

Хороший пример использования MVC можно найти в репозитории GitHub в каталоге примеров. Метод Initialise BaseController использует модель устройства, чтобы установить соответствующие свойства для устройства, к которым затем можно получить доступ через ViewBag. Таким образом, в вашем представлении входа в систему вы можете использовать что-то вроде

if( ViewBag.Device.PlatformName == "Android" )
{
    return Redirect("/AndroidApp");
}
else if
...
else
{
    return View();
}

Это то, что вы хотели?

Другие вопросы по тегам