2013-06-24 6 views
1

У меня есть вызов веб-службы, где я получаю список из 5 кодов доступа, пользователь сможет войти с одним из этих кодов (в основном считают, что у них есть код, но ничего не безопасно он, поскольку они могли бы делиться кодами, если они хотели)Тип входа в систему без базы данных

Я хотел бы иметь возможность использовать [Авторизовать], если это вообще возможно. Не будет использовать базу данных, только один вызов api. Это возможно?

+0

вы пробовали просто, если заявление, сравнивая известные коды на входе пользователей? За то, что вы просите, я думаю, что это может быть так просто, как –

+0

@ JoeW хорошо, да, но мне нужно сделать его глобальным, поэтому на любой странице, к которой они пытаются получить доступ (если для них не сохранено никакого файла cookie), он будет логин – Spooks

ответ

3

Проверьте коды на входе в систему с простым, если оператор

if{code1 == "edgwreggw" || code2 == "etgwg"....) 
{ 
FormsAuthentication.RedirectFromLoginPage(data.username, true); 
} 

else 
{ 
login fail 
} 

WebConfig

<authentication mode="Forms"> 
    <forms loginUrl="~/UserAuthentication/SignIn" timeout="10" defaultUrl="~\Home\Index" /> 
</authentication> 
+0

Ну, мне нужно знать, как сделать это глобальным, поэтому любая страница вытащите их на страницу входа в систему – Spooks

+0

проверьте мой обновленный ответ –

+0

удивительный, а затем просто используйте [Авторизовать], как с обычным логином/паролем? – Spooks

2

Итак, вам действительно не нужна безопасность, но вы хотите передать 1 из 5 кодов случайным людям, чтобы использовать ваш веб-сервис.

Простой достаточно. Поместите коды в массив. Проверьте, является ли переданный код одним из этих значений. Если нет, завершите запрос. Если это так, обработайте запрос.

+0

Но как я могу использовать [Авторизовать] (или что-то в этом роде) для проверки каждой страницы? – Spooks

+1

Вы не можете использовать 'AuthorizeAttribute' для этого, поскольку он специализирован для истинных логинов. Однако вы можете создать свой собственный подкласс 'ActionFilterAttribute' для выполнения любой необходимой вам обработки. См. Http://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute(v=vs.108).aspx –