Аутентификация MVC3 и анонимные пользователи

У меня есть приложение MVC3, которое использует стандартный контроллер учетных записей, который поставляется с Visual Studio для аутентификации пользователей.

Я хочу поделиться с людьми определенными частями моей программы, подобно тому, как Google делится документами в документах Google, когда вы делаете это по электронной почте; другими словами, я не хочу предоставлять кому-либо доступ к страницам (в этом случае я мог бы просто удалить атрибуты авторизации), но я хочу, чтобы пользователи делились страницами на основе URL-адреса с хэшем в нем, и чтобы они пропускали авторизоваться.

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

Как бы я это сделал?


person garma    schedule 29.04.2012    source источник


Ответы (1)


  1. Создайте таблицу в базе данных с информацией об общих страницах (контроллер, действие, documentId, хэш, expiresAt и т. д.)
  2. Переопределите атрибут Authorize и в параметрах URL-адреса OnAuthorizationvalidate в вашей базе данных.
    public class SharedAuthorize:AuthorizeAttribute  
    {  
        public override void OnAuthorization(AuthorizationContext filterContext)
        {  
            var documentHash = int.Parse(filterContext.RouteData.Values["hash"].ToString());
            if (!HashRepository.CanWeRead(documentHash,controller, action, documentId))
            {
                return false;
            }
            return true;
        }
    }

Это просто идея=))

person Aleksei Anufriev    schedule 29.04.2012
comment
спасибо, это дало мне начало. Еще немного гугления дало мне это, что в основном то же самое, но немного подробнее: com/2011/mvc3-custom-authorizeattribute это все, что мне нужно - person garma; 09.05.2012