0
用户创建帐户后,他/她需要创建一个配置文件,用于提交将用于信件的一些信息。我有2个这样的控制器需要来自用户配置文件的信息。如何创建派生自AuthorizeAttribute的自定义属性?
我试图创建一个属性来检查用户是否已经创建了配置文件,然后让他访问任何操作方法。如果不是,则应该将用户重定向到配置文件页面。
public class NotAuthorizedWithoutProfileAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var userName = httpContext.Profile.UserName;
var repository = new OWRepository();
var userInfo = repository.GetUserInfo(userName);
if (userInfo == null)
return false;
else
return true;
}
}
我遇到的问题是关于用户名,即以下行
var userName = httpContext.Profile.UserName;
为什么给空?然而,这是我获得登录用户名的方式。
谢谢,它的工作。唯一的问题是它将用户重定向到登录页面。我想将用户重定向到Profile页面,即Controller = UserInfo和action = ManageProfile()。 – Richard77 2013-04-10 01:53:37
没关系。本文回答这个问题:http://stackoverflow.com/questions/13284729/asp-net-mvc-4-custom-authorize-attribute-how-to-redirect-unauthorized-users-to?rq=1 – Richard77 2013-04-10 03:02:21