如何解决MVC成员资格问题
| 几乎每次我运行MVC应用程序时,它都会因出现错误而停止,然后转到主页。 更新:这是最新的代码:public class RequireLoggedIn : ActionFilterattribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (Membership.GetUser() == null)
{
filterContext.Result = new RedirectResult(\"~/logon\");
}
}
}
public ActionResult Index()
{
MembershipUser myObject = Membership.GetUser();
Guid UserID = (Guid)myObject.ProviderUserKey;
DateTime dateTime = new DateTime();
dateTime = DateTime.Now.AddDays(14);
var model = db.Task.Where(n => (n.UserId == UserID) && (n.Completed == false) && (n.Due < dateTime));
return View(model);
}
为什么这样做呢?过去效果不错。
任何帮助深表感谢。
解决方法
在此示例中,我将添加一个属性以检查用户已登录。您根本不希望该操作可用于未经身份验证的用户,因此无需在操作本身的主体中对其进行管理。您可以使用
Authorize
来完成此操作,而不必使用它的形式。
也请检查以下问题:ASP .NET MVC中的Authorize属性是否用于身份验证和授权?
如果要创建一个我建议的自定义属性,请创建一个新的ActionFilterAttribute
public class RequireLoggedIn : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext) {
if (Membership.GetUser() == null) {
filterContext.Result = new RedirectResult(\"~/Logon\");
}
}
}
然后,您可以在整个应用程序中以此装饰任何“动作”。简单:)
,根据msdn Membership.GetUser()引发异常,如果您没有任何人登录。
http://msdn.microsoft.com/zh-CN/library/fcxcb339.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。