C# 对控制器操作方法执行自定义授权检查
我正在开发一个内容管理系统,其中我有一个控制器,显示分配给当前登录用户供其审阅的所有文章,然后用户可以批准或拒绝此文章。为了确保用户只看到分配给他的文章,我编写了以下查询:-C# 对控制器操作方法执行自定义授权检查,c#,asp.net,asp.net-mvc-3,entity-framework,C#,Asp.net,Asp.net Mvc 3,Entity Framework,我正在开发一个内容管理系统,其中我有一个控制器,显示分配给当前登录用户供其审阅的所有文章,然后用户可以批准或拒绝此文章。为了确保用户只看到分配给他的文章,我编写了以下查询:- public IQueryable<Article> MyApproval() { Guid id = (Guid)Membership.GetUser().ProviderUserKey; return from article in db.Articles
public IQueryable<Article> MyApproval()
{
Guid id = (Guid)Membership.GetUser().ProviderUserKey;
return from article in db.Articles
where article.Approval_ID == id && article.Article_status_ID == 1 // 1 represents new articles in Article_status table
orderby article.Article_ID descending
select article;
}
因此,我有以下三个问题:-
if (!articleapproval.Isapproval(User.Identity.Name))
return View(“InvalidOwner”);
User.Identity.Name
传递给helper方法更好的方法是什么(就像我目前正在做的那样)?或者修改helper方法以在其中生成User.Identity.Name
,如下所示
public partial class Article
{
public bool Isapprova ()
{
return HostedBy.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase);}
}
}
if (!articleapproval.Isapproval(User.Identity.Name))
return View(“InvalidOwner”);
你应该检查GET和POST
将User.Identity.Name传递给helper方法(如下所示)更好的方法是什么
我现在正在做什么?或者修改helper方法以生成
其中的User.Identity.Name如下所示
public partial class Article
{
public bool Isapprova ()
{
return HostedBy.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase);}
}
}
helper方法不需要知道如何检索当前用户名。您的实现很好