Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 质疑如何在MVC Web应用程序中为不同的经过身份验证的人呈现视图和调用服务_Asp.net Mvc 3_Authentication_Views_Profile - Fatal编程技术网

Asp.net mvc 3 质疑如何在MVC Web应用程序中为不同的经过身份验证的人呈现视图和调用服务

Asp.net mvc 3 质疑如何在MVC Web应用程序中为不同的经过身份验证的人呈现视图和调用服务,asp.net-mvc-3,authentication,views,profile,Asp.net Mvc 3,Authentication,Views,Profile,我有疑问,我需要你的帮助。 我正在为大学做一个项目,我有以下问题 我的项目旨在管理特定项目的问题。在项目中,通常与成员(解决问题)和客户关联 那份报告是关于这个问题的 我的问题从这里开始: 该应用程序是一个web应用程序,使用管理员、成员和客户的登录机制。 客户报告,由会员决定 因此,我看到的是: 对于客户来说,表单用于添加、更新并允许将所有信息添加到问题中。 另一方面,成员国根据其决议改变问题的状态 我正在做一个web应用程序MvC3我的问题是。。如何根据经过身份验证的人呈现不同的视图 以及不

我有疑问,我需要你的帮助。 我正在为大学做一个项目,我有以下问题

我的项目旨在管理特定项目的问题。在项目中,通常与成员(解决问题)和客户关联 那份报告是关于这个问题的

我的问题从这里开始:

该应用程序是一个web应用程序,使用管理员、成员和客户的登录机制。 客户报告,由会员决定

因此,我看到的是: 对于客户来说,表单用于添加、更新并允许将所有信息添加到问题中。 另一方面,成员国根据其决议改变问题的状态

我正在做一个web应用程序MvC3我的问题是。。如何根据经过身份验证的人呈现不同的视图 以及不同业务层的呼叫服务

目前,我的控制器扮演的角色是验证用户是否可以通过角色进行访问,而不是其他。。验证身份的是业务层。 如何以及在何处做出决定,以及如何避免if和ELSE在整个代码中传播?

公共接口IQueryService{
public interface IQueryService {
...
#region Issues


IEnumerable<IssueQueryList> GetIssues(int currentPage, int take);



IssueServiceClientDTO GetIssueById(int issueId);

#endregion
...
... #区域问题 IEnumerable GetIssues(int currentPage,int take); IssueServiceClientdTogetIssueByid(intIssueId); #端区 ...
}

我最终将有一个GetIssueByIdMember(…),它使用不同的DTO数据为成员返回问题

public sealed class IssueService : ServiceBase, IIssueService
{
    public IssueService(IRepository db) : base(db) 
    {

    }


    public void Add(IssueServiceClientDTO issueServiceClient)
    {
        if (issueServiceClient == null)
            throw new ArgumentNullException("issueServiceClient");

        User dbUser = CurrentUser;
        Client dbClient;

        if (dbUser == null || (dbClient = dbUser as Client) == null)
            throw new InvalidOperationException();

        Project dbProject = _db.Query<Project>().GetById(issueServiceClient.ProjectId);
        _db.Insert(issueServiceClient.CopyToDomainObject(dbProject, dbClient));


    }
公共密封类IssueService:ServiceBase,IIssueService
{
公共发行服务(IRepository db):基础(db)
{
}
公共作废添加(IssueServiceClientD到issueServiceClient)
{
如果(issueServiceClient==null)
抛出新ArgumentNullException(“issueServiceClient”);
User dbUser=CurrentUser;
客户端dbClient;
if(dbUser==null | |(dbClient=dbUser-as-Client)==null)
抛出新的InvalidOperationException();
Project dbProject=_db.Query().GetById(issueServiceClient.ProjectId);
_Insert(issueServiceClient.copytomainobject(dbProject,dbClient));
}
这只是针对客户机…但是当我有针对表示层的成员(在另一个类中)的,或者从某个地方,我最终需要知道调用哪个服务

这是查询服务,但我将为客户和会员提供服务


但是我需要在之前知道(基于用户身份验证)调用哪个方法。

我想我理解您对控制器的看法,但是您能提供一些代码以便我们更好地帮助您吗?