MVC3身份验证和匿名用户

时间:2012-04-29 20:53:52

标签: asp.net-mvc-3 anonymous

我有一个MVC3应用程序,它使用visual studio附带的标准accountcontroller对用户进行身份验证。

我想与人分享我的计划的特定部分,就像google docs中的google share文档一样,当你通过电子邮件这样做时;换句话说,我不想让任何人访问这些页面(在这种情况下我可以删除Authorize属性)但我确实希望用户根据带有哈希的url共享页面,让他们跳过登录。

我想我想基于页面生成哈希并将其链接到匿名用户,如果哈希值正确则必须自动登录

我该怎么做?

1 个答案:

答案 0 :(得分:1)

  1. 在数据库中创建一个包含共享页面信息的表(controller,action,documentId,hash,expiresAt等)
  2. 覆盖授权属性,并在数据库中的OnAuthorizationvalidate url params中。
  3.     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;
            }
        }
    
    

    这只是一个想法=))

相关问题